#include \n//调用算法库\n#include \nusing namespace std;\n// 调用函数库\n#include \nusing namespace std;\nint main()\n{\n int n;\n double a[1000],num = 0,sum = 0;\n cin >> n;\n for(int i = 1;i <= n;i++)\n {\n cin>>a[i];\n }\n sort(num + 1,num + n + 1);\n // 数组a,初始化为0\n for(int j = i + 1;j <= n - i;j++)\n {\n sum += a[j];\n }\n cout<<sum / (n - 2)<<endl;\n for (int i = 2; i <= n - 1; i++)\n {\n // 如果a[i]不为零,输出a[i]和一个空格\n if(a[i] > 0)\n {\n cout<<a[i]<<" ";\n }\n }\n return 0;\n}\n指出上面的错误内容:上面的代码有一些错误:\n1. using namespace std; 只需要写一次,不需要重复写两次。\n2. sort(num + 1,num + n + 1); 这一行代码不正确,应该改为 sort(a + 1,a + n + 1); 来对数组a进行排序。\n3. for(int j = i + 1;j <= n - i;j++) 这个循环的起始条件不正确,应该改为 for(int j = 2;j <= n - 1;j++)。\n4. 在输出数组a的元素时,应该从 i=1 开始循环,而不是 i=2 开始循环。\n5. 在输出数组a的元素时,应该输出一个换行符,而不是一个空格。\n\n以下是修正后的代码:\ncpp\n#include <iostream>\n#include <algorithm>\nusing namespace std;\n\nint main()\n{\n int n;\n double a[1000], num = 0, sum = 0;\n cin >> n;\n for(int i = 1; i <= n; i++)\n {\n cin >> a[i];\n }\n sort(a + 1, a + n + 1);\n \n for(int j = 2; j <= n - 1; j++)\n {\n sum += a[j];\n }\n cout << sum / (n - 2) << endl;\n \n for(int i = 1; i <= n; i++)\n {\n if(a[i] > 0)\n {\n cout << a[i] << " ";\n }\n }\n cout << endl;\n \n return 0;\n}\n

C++ 代码优化:计算数组平均值并输出非零元素

原文地址: https://www.cveoy.top/t/topic/pMWL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录