c语言中,输入20个数,统计非负数个数及其和,并按从小到大顺序输出

如题所述

免费给大家了

望采纳!

//c语言中,输入20个数,统计非负数个数及其和,并按从小到大顺序输出
#include<stdio.h>
#include<stdlib.h>
#define true  1
#define false 0
#define bool  int

int data[20];

void Input_Data(void)
{
int i;
printf("请输入20个数:\n");
for(i=0;i<20;i++)
{
rewind(stdin);
scanf("%d",&data[i]);
}
}
void Count(void)
{
int i;
int j=0;
for(i=0;i<20;i++)
{
if(data[i]>=0)
{
j++;
}
}
printf("非负数个数:%d\n",j);
}
void Sub(void)
{
int i;
long sub=0;
for(i=0;i<20;i++)
{
if(data[i]>0)
{
sub+=data[i];
}
}
printf("非负数的和:%d\n",sub);
}
void Sort(void)
{
int i,j;
int min=data[0];
int temp;
for(j=0;j<20;j++)
{
for(i=0;i<20;i++)
{
if(data[i]>data[i+1])
{
temp=data[i];
data[i]=data[i+1];
data[i+1]=temp;
}
}
}
system("CLS");
printf("从小到大顺序输出:\n");
for(i=0;i<20;i++)
{
printf("%d\n",data[i]);
}
}
void menu(void)
{
printf("\t\t1、统计非负数个数\n");
printf("\t\t2、统计非负数的和\n");
printf("\t\t3、从小到大顺序输出\n");
printf("\t\t0、退出系统\n");
}
void main(void)
{
bool EXIT=false;
char choice;
Input_Data();
while(!EXIT)
{
system("CLS");
menu();
rewind(stdin);
scanf("%d",&choice);
switch(choice)
{
case 0:EXIT=true;break;
case 1:Count();break;
case 2:Sub();break;
case 3:Sort();break;
default:EXIT=false;break;
}
if(!EXIT)
{
system("pause");
}
}
}


温馨提示:答案为网友推荐,仅供参考
相似回答