简单C语言编写

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:43:35
请写一个C语言的程序,循环输入若干个大于0且互不相等的整型数据(当输入-1时循环结束),循环结束后,请按从大到小的顺序输出这些数据中最大的前四个数。

#include<stdio.h>

void main()
{
int a[15];
int i=0;
int flag=0;
int temp;
printf("input numbers(end with -1):");
while(flag==0)
{
scanf("%d",&temp);
if(temp==-1)
{
flag=1;
i--;
break;
}
else
{
a[i]=temp;
i++;
}
}

for(int y=0;y<=i;y++)
{
for(int x=1;x<=i-y;x++)
{
if(a[x]>a[x-1])
{
temp=a[x-1];
a[x-1]=a[x];
a[x]=temp;
}
}
}
printf("the top 4 is:%d,%d,%d,%d\n",a[0],a[1],a[2],a[3]);
}

已经测试过,效率也很高,从许多数里找少量的数要用起泡法(冒泡)

注意排序算法是i<4即第一层循环只需四次,效率最高了

#include<stdio.h>

#define N 1000
main()
{
char a[N];
int i,j,k=0;
int temp;

for(i = 0; i < N; i ++)
{
scanf("%d",&a[i]);
if(-1 == a[i])
break;