有什么问题#include<iostream> using namespace std; int main(){ int n,m,count=0; cin>>n; int maxn=-1; int z[108]={0}; for(int i=0;i<n;i++){ cin>>m; z[m]++; } for(int i=0;i<108;i++){ //TODO if(z[i]!=0){ if(z[i]>maxn){ maxn=i; } z[i]--; count++; } } cout<<maxn<<" "<<count; return 0; }怎么修改
时间: 2023-06-22 08:34:08 浏览: 110
#include_iostream.h_
4星 · 用户满意度95%
这段代码本身没有任何错误,但是可以进行一些优化:
1. 应该使用常量或变量来表示数组的长度,而不是使用一个魔法数(108),这样代码的可读性会更好。
2. 在遍历数组时,可以直接使用 foreach 循环,而不是手动使用 for 循环。
下面是优化后的代码:
```
#include<iostream>
using namespace std;
const int MAXN = 108; // 使用常量表示数组长度
int main(){
int n,m,count=0;
cin>>n;
int maxn=-1;
int z[MAXN]={0};
for(int i=0;i<n;i++){
cin>>m;
z[m]++;
}
for(int x : z){ // 使用 foreach 循环
if(x!=0){
if(x>maxn){
maxn=x;
}
x--;
count++;
}
}
cout<<maxn<<" "<<count;
return 0;
}
```
阅读全文