0
已解决
李牧之
新手光能
新手光能
#include<iostream>
#include<algorithm>
using namespace std;
int a[10001];
int main(){
int n,ans=0;
cin>>n;
if (n==0) {
cout<<'0';
}
else{
for(int i=0;i<n*n;i++) cin>>a[i];
sort(a,a+n*n);
for(int i=n*n-1;i>n*n-n-1;i--) ans+=a[i];
cout<<ans<<endl;
}
return 0;
}
大佬教我,求思路!!谢谢!!
0
已采纳
贾敬波
高级守护
高级守护
这个其实就是一个排序的题目啊,需要输出前n个大的数的和嘛,先给数组排个序,然后输出a[0]到a[n-1]就行了啊。
以下是选择排序核心代码
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
贾敬波在2018-01-10 17:45:16追加了内容
补充一下,输出a[0]-a[n-1]的和
贾敬波在2018-01-10 17:55:10追加了内容
还有一点要提示的,就是注意数据类型,如果数据过大应使用long long
0
朱宗晔
初级光能
初级光能
核心部分
for(i=i;i<n*n;i++) cin>>a[i];
for(int i=0;i<n*n;i++)
for(int j=1;j<n*n;j++)
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
for(i=n*n-n;i<n*n;i++) sum+=a[i];
小于等于n * n - n 才对
0