C++程序设计

输入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;

}


温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-09
首先这个程序的排版很不美观,另外,构造函数不需要返回值,所以void应该去掉。
另外你的gt()不是很具有代表性,看不出它的意义来额。
相似回答