修改代码:#include<bits/stdc++.h> using namespace std; #define MAXSIZE 1001 int main(){ int a[1001]; int n,m; cin>>n; m=n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(a[i]==a[j]){ n--; a[j]=0;} } } cout<<n<<endl; for(int i=1;i<=m;i++){ if(a[i]!=0) { sort(a+1,a+m); cout<<a[i]<<' ';} } return 0; }输出时,把0的结果去掉
时间: 2023-06-22 21:33:33 浏览: 106
修改后的代码如下:
```
#include<bits/stdc++.h>
using namespace std;
#define MAXSIZE 1001
int main(){
int a[MAXSIZE];
int n, m;
cin >> n;
m = n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= n; i++){
for(int j = i + 1; j <= n; j++){
if(a[i] == a[j]){
n--;
a[j] = 0;
}
}
}
cout << n << endl;
sort(a + 1, a + m + 1);
for(int i = 1; i <= m; i++){
if(a[i] != 0) {
cout << a[i] << ' ';
}
}
return 0;
}
```
修改后的代码主要改动了两点:
1. 将输出不为0的元素的部分放在了去重之后,这样就不需要在输出时去掉0了。
2. 将排序部分放在了输出不为0的元素的部分之前,这样可以先升序排列再输出。
这样修改后输出就是不为0的元素个数和升序排列的不为0的元素了。
阅读全文