输入20个整数,统计并输出其中非负数的个数,并计算输出它们的和,然后将非负数从小到大进行排序并输出,每行输出一个数据。
要点分析:定义一维数组,循环输入数据,对于其中非负数据存储并求和,排序后输出。
你好,这是我写的,你先看看,不懂请追问,可行望采纳:
#include<iostream.h>
int main()
{
//数组n1是用户输入的20个数,数组n2用于储存非负整数
int n1[20],n2[20],i,n,j,k,t,sum=0;
//循环输入20个数,并将非负整数储存到数组n2中
for(i=0,n=0;i<20;i++)
{
cin>>n1[i];
if(n1[i]>=0)
{
//对非负整数求和
sum+=n1[i];
n2[n++]=n1[i];
}
}
//对数组n2从大到小排序
for(j=0;j<n;j++)
for(k=0;k<n-j;k++)
if(n2[k]<n2[k+1])
{
t=n2[k];
n2[k]=n2[k+1];
n2[k+1]=t;
}
//依次输出题目的3个要求
cout<<"非负整数的个数:"<<n<<endl;
cout<<"它们的和是:"<<sum<<endl;
cout<<"从大到小排序如下:"<<endl;
for(j=0;j<n;j++)
cout<<n2[j]<<" ";
cout<<endl;
return 0;
}