优化以下代码:#include <iostream> using namespace std; struct S{ int num; char name[5]; int a; int b; int c; double sum; }; int main(){ int n; cin>>n; cin.ignore(); double temp; char x; int y; struct S fri[n]; for(int i=0;i<n;i++){ scanf("%d %s %d %d %d",&fri[i].num,&fri[i].name,&fri[i].a,&fri[i].b,&fri[i].c); fri[i].sum=(fri[i].a+fri[i].b+fri[i].c)*1.0/3.0; } for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(fri[i].sum<fri[j].sum){ temp=fri[i].sum; fri[i].sum=fri[j].sum; fri[j].sum=temp; y=fri[i].num; fri[i].num=fri[j].num; fri[j].num=y; x=fri[i].name; fri[i].name=fri[j].name; fri[j].name=x; } } printf("%d,%s,%.2f\n",fri[i].num,fri[i].name,fri[i].sum); } return 0; }
时间: 2024-01-20 18:02:58 浏览: 23
以下是优化后的代码:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
struct S{
int num;
string name;
int a;
int b;
int c;
double sum;
};
bool cmp(const S& a, const S& b){
return a.sum > b.sum;
}
int main(){
int n;
cin >> n;
cin.ignore();
struct S fri[n];
for(int i = 0; i < n; i++){
cin >> fri[i].num >> fri[i].name >> fri[i].a >> fri[i].b >> fri[i].c;
fri[i].sum = (fri[i].a + fri[i].b + fri[i].c) / 3.0;
}
sort(fri, fri + n, cmp);
for(int i = 0; i < n; i++){
printf("%d,%s,%.2f\n", fri[i].num, fri[i].name.c_str(), fri[i].sum);
}
return 0;
}
```
主要的优化点如下:
1. 使用`string`代替`char[]`,可以避免数组越界的问题;
2. 使用`cin`代替`scanf`,可以避免输入格式不规范的问题;
3. 使用`std::sort`代替手写排序算法,可以提高排序效率;
4. 使用`bool cmp`函数代替手写的冒泡排序,可以提高排序效率;
5. 在输出`name`时,需要使用`c_str()`将`string`转化为`char[]`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)