赣州中学成绩查询系统:c语言编程 输入4个整数,要求由小到大输出

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 00:30:19
输入4个整数,要求由小到大输出
因为我是新手.我只会三个数!
四个数 就不会了.要是5个数 或是更多怎么办?

用数组!

int swapped = 1; /* 是否执行了交换 */
int num[20];

while(swapped == 1)
{
swapped = 0;
for(i = 0; i < 19; i++)
{
if(num[i] > num[i+1]) /* 小到大 */
{
swapped = 1;
tmp = num[i];
num[i] = num[i+1];
num[i+1] = tmp;
}
}
}

排序就可以了
先把数字放入数组中
比如有10个数字就循环10次
下面是10个数字的排序,因为从0开始,所以到9结束,这样就循环了10次
#include <stdio.h>
main()
{
int i,j,temp,sz[10]; /*定义变量*/

for(i=0;i<=9;i++) /*输入数据到数组*/
scanf("%d",&sz[i]);

for(i=0;i<=9;i++) /*从小到大排序*/
for(j=0;j<=9;j++)
if (sz[i]<sz[j])
{temp=sz[i]; sz[i]=sz[j]; sz[j]=temp;}

for(i=0;i<=9;i++) /*显示排序好的数组*/
printf("%d ",sz[i]);
}

道理都是一样的,再多就可以用循环了,不过4个数用循环不太爽~~,看下面的冒泡排序非循环4个数的实现呵呵:
#include <stdio.h>

int main(char* x ,char** y)

{
int temp,a,b,c,d;

printf("please input num list:");

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

if(a>b) {temp=a; a=b; b=temp;}

if(a>c) {temp=a; a=c; c=temp;}

if(a>d) {temp=a; a=d; d=temp;}

if(b>c) {temp=a; b=c; c=temp;}

if(b>d) {temp=b; b=d; d=temp;}

if(c>d) {temp=c; c=d; d=temp;}

printf("the sort is :\n");

printf("%d, %d, %d, %d\n",a,b,c,d);

return 0;

}

#include "stdio.h"
main()
{int a[4],i,j,t;
for(i<0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<3;i++)
for(j=i+1;j<4;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<4;i++)
printf("%d ",a[i]);
}