34 条题解
-
-1
-
-1
虽然这里没有写关于sort()降序排序的用法,你可能会想是因为这样很难弄,但其实这个很简单,和Python差不多,只要递入第三个参数就行了,在两个参数后面加多一个参数greater<type>(),就能把默认的升序调成降序(type那里填排序的类型,如int,long,float,double等)剩下的也没啥好讲,但要注意最后的答案,尽管你输出的是float类型或double类型,没有后面的“.0”就不行,你可以在最后前五名分数总数除以人数的时候,把“5”改成“5.0”,这样就可以了。完整代码如下:
#include<bits/stdc++.h> using namespace std; int n,a[10],sum; int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n,greater<int>()); for(int i=0;i<5;i++){ sum+=a[i]; } float b= sum/5.0; cout<<b; return 0; }
(不要忘记“return 0;”,虽然他在现在不写也没啥用,但这其实挺重要,如果你不写,有些编辑器会随机返回一个数,很明显,这会造成一个不小的困扰,所以还是手动写上吧,浪费不了多少时间的。)
-
-1
题目提示中的
#include <algotithm>
应该为#include <algorithm>
#include <iostream> #include <algorithm> #include <cstdio> using namespace std; int main() { int n,a[101],sum=0; cin>>n; for (int i=1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+n+1); for (int i=n;i>n-5;i--) { sum+=a[i]; } printf("%.1f",sum*1.0/5); return 0; }
-
-1
我真的想用排序可是我懒👀️,所以用的是sort函数👀️
上代码
#include <bits/stdc++.h>//万能开头别忘了 using namespace std; int s; int main() { int n , a[100]; double s = 0; cin >> n; for (int i = 0;i < n;i++) cin >> a[i]; sort(a + 0,a + n);//sort函数完成排序(从小到大) for (int i = n - 1;i >= n - 5;i--) s += a[i];//因为要找最大的5个,所以要从n - 1开始循环 s = s / 5; printf("%.1f",s);//记得保留一位小数 return 0; }
-
-1
计数排序运用
这题我用了计数排序,它的核心思想很简单。
- 一个满分一百分的考试,就定义101个数组,全都初始化为0,表示0--100,每个分数的人数。
- 之后输入一个数,如95,那下标为95的数组就加1,代表95分的人数加一。
- 优缺点:计数排序是最简单、最快的代码之一。但是,他的空间复杂度偏高。
AC代码(附解析)
int n,a[101]={0},x,num=0,sum=0; cin>>n; for (int i=1;i<=n;i++) { cin>>x; a[x]++; }//输入分数,把对应分数的数组+1。 for (int i=100;i>=0;i--) { for (int j=a[i];j>0;j--) { sum+=i;//总分增加。 num++;//输入数的个数+1。 if (num==5) { cout<<sum/5.0; return 0; }//如果已经有五个数加入“前五名总分(sum)”那么输出平均分,结束程序。 } }
-
-2
其实这里也可以用sort(),就是要加第3个参数:greater<type(数据类型)>()。 原来sort()是默认升序(从小到大),加了这个函数就会变成降序(从大到小)。 因为排的是int数组,所以<>里填int,排的是double里面就填double。 所以,上代码:
#include <bits/stdc++.h> using namespace std; int main() { int n, a[100]; float ans = 0; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; sort(a, a+n, greater<int>()); for (int i = 0; i < 5; i++) ans += a[i]/5.0; cout << ans; return 0; }
信息
- ID
- 221
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 4403
- 已通过
- 1292
- 上传者