3 条题解
-
1
太简单了,我花了整整3秒才想出来
#include <bits/stdc++.h> using namespace std; int main() { int n, a[105], maxn = -1, minn = 999999,pos1,pos2; cin >> n; for(int i=1;i<=n;i++) { cin>>a[i]; if(a[i]>maxn) { maxn = a[i]; pos1 = i; } if(a[i]<minn) { minn = a[i]; pos2=i; } } int t = a[pos1]; a[pos1] = a[pos2]; a[pos2] = t; for(int i=1;i<=n;i++) cout << a[i]<<" "; return 0; }
-
1
看不懂另一个
#include <iostream> using namespace std; int n,a[104]; int main() { int max=-45,min=99999; cin >>n; for(int i=1;i<=n;i++) { cin >> a[i]; if(a[i]>max) { max=a[i]; } if(a[i]<min) { min=a[i]; } } for(int i=1;i<=n;i++) { if(a[i]==max) { cout << min<<" "; } else if(a[i]==min) { cout <<max<<" "; } else { cout <<a[i]<<" "; } } }
-
0
这道题其实只需要用指针记录max和min的地址。然后循环输出,如果a[i]的地址与max或min的地址相同,就输出题目要求的对应的值。 AC Code
#include <bits/stdc++.h> using namespace std; int m,a[1000],maxx=INT_MIN,minn=INT_MAX; int main(){ cin>>m; int *x=NULL,*n=NULL; for(int i=1;i<=m;i++){ cin>>a[i]; if(a[i]>maxx){ maxx=a[i]; x=&a[i]; } if(a[i]<minn){ minn=a[i]; n=&a[i]; } } for(int i=1;i<=m;i++){ if(&a[i]==x)cout<<minn<<" "; else if(&a[i]==n)cout<<maxx<<" "; else cout<<a[i]<<" "; } return 0; }
- 1
信息
- ID
- 232
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 1
- 标签
- 递交数
- 49
- 已通过
- 39
- 上传者