C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?

谁来帮帮我啊???

第1个回答  2007-04-24
#include <stdio.h>
main()
{
int a[4];//定义一个一维数组,存放输入的四个整数
int i,j,temp;
for(i=0;i<4;i++)
scanf("%d",a[i]);
//循环排序
for(i=0;i<3;i++) //最大的一个整数在最后一次已经是
a[3]了,所以为了速度就不用i<4而是用i<3
for(j=i+1;j<4;j++)
if(a[j]<a[i]) //如果a[j]<a[i],将a[j]<a[i]两个数换过来(要借助中间变量temp)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
printf("您输入的四个整数由小到大输入为:\n")
for(i=0;i<4;i++) //循环输出
printf("%d ",a[i]);
getchar(); //停止屏幕
getchar();
}
你可以上机运行一下,结果是对的,有什么地方不明白的再联系我,只要我会的一定告诉你的!!!
第2个回答  2013-03-01
#include <stdio.h>
#include <stdlib.h>
void main()
{
//输入4(N)个整数,按从小到大的顺序排列出来
int a[5],i,j,temp;
printf("please input 4 numbers:\n");
for(i=1;i<=4;i++)
scanf("%d",&a[i]);//由键盘输入4个整数,中间以空格分开
for(i=1;i<=3;i++)//第i趟比较,分析可知如果有N个数共需要比较N-1趟
for(j=1;j<=4-i;j++)//第j次比较,分析可知第i趟共需要比较N-i次
if(a[i]>a[i+1])//如果前一个数比后一个数大,两数值交换
{temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
printf("the sorted numbers:\n");//打印出分类后的结果
for(i=1;i<=45;i++)
printf("%d ",a[i]);
system("pause");//屏幕停留在当前结果,以免屏幕一闪而过,无法看到运行结果
}

参考资料:谭浩强主编C程序设计第二版第七章一维数组的运用

第3个回答  2020-05-14
将四个数存到数组中,然后排序即可。
排序后,再利用循环输出。
代码:
#include <stdio.h>
int main()
{
int a[4],i,j;
for(i = 0; i < 4; i ++)
scanf("%d",&a[i]);
for(i = 0; i < 3; i ++)
for(j = i+1; j < 4; j ++)
{
int t;
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]);
}
第4个回答  2007-04-24
maim()
{
int a[5],i,j,t;
for(i=1;i<5;i++)
{
printf("scanf %d number:",i);
scanf("%d",&a{i]);
}
for(i=1;i<5;i++)
for(j=i+1;j<5,j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("排序后\n");
for(i=1;i<5;i++)
{
printf("number:%5d",a[i]);
}
}
第5个回答  推荐于2017-09-18
最愚蠢的方法:
# include<stdio.h>
main()
{
float a,b,c,d,t;
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
if(a>b) {t=a;a=b;b=t);
if(a>c) {t=a;a=c;c=b};
if(a>d) {t=a;a=d;d=t);
if(b>c) {t=b;b=c;c=t};
if(b>d) {t=b;b=d;d=t};
if(c>d) {t=c;c=d;d=t};
printf("%5.2f,%5.2f,%5.2f,%5.2f",a,b,c,d);
}

冒泡法:
# include<stdio.h>
main()
{ int i,j,t,a[3];/* 定义一个数组用来存这4个数 */
for(i=0;i<4;i++)
scanf("%d",&a[i]); /* 录入4个数 */
for(i=0;i<4;i++) /* 冒泡法 */
for(j=0;j<4-i;j++)
{ if(a[j]>a[j+1]) /* 比较相邻的两个数,小的调前面。*/
{ t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
for(i=0;i<4;i++) /* 分别输出排完后的4个数 */
printf("%d ",a[i]);
}本回答被提问者采纳
相似回答