C语言 输入4个整数,要求按由小到大的顺序输出

#include<stdio.h>
void main()
{
int a,b,c,d,t;
printf("请输入四个整数:\n");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

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

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

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

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("四个整数从小到大的顺序输出是:%d,%d,%d,%d",a,b,c,d);
}

看不懂,麻烦解剖一下。只要是卡在这些语句if(a>c){ t=a;a=c;c=t;},不知道什么意思?

if是可以没有else的,这样的情况下如果if的条件符合,则执行if语句,否则不执行,直接到下一个if。也就是说,如果a不大于b,也就是a小于b,那么就像刚刚说的,不执行这个if就是了,计算机会往下阅读程序,也就是去判断下一个if,记住一句话“if条件不符合就不执行”。else只是相当于if不符合的话其他情况下执行什么,如果没有else,那就表示,if不符合,程序保持不动。
这个程序给你举个实例讲解也许你就明白了
假设输入为1,3,4,2
1不大于3,第一个if不执行,目前顺序为1,3,4,2
1不大于4,第二个if不执行,目前顺序为1,3,4,2
1不大于2,第三个if不执行,目前顺序为1,3,4,2
3不大于4,第四个if不执行,目前顺序为1,3,4,2
3大于2,第五个if执行,实现交换,目前顺序为1,2,4,3
4大于3,第六个if执行,实现交换,最后顺序为1,2,3,4

其实你仔细想想,如果第一个if执行,实现交换,那么第二个if中的a已经是交换过后的那个较小的数。第三个同理。也就是说,前3个if执行完以后确保了第1个数是4个数字中最小的,第四第五确保第二个数在剩下的3个数中是最小的(也就是4个数字中第二小的),第6个if确保第三个数小于第四个数。这样子就实现了整个结构的排序。希望能帮到你。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-22
t=a; a=c; c=t; 这是将a的值和c的值进行交换的意思。
设置一个中间变量t,保存a的值。
然后将c的值赋给a,此时a的值被覆盖,然后a原来的值保存在t里,所以c=t。本回答被提问者和网友采纳
第2个回答  2016-06-29
你卡住的语句的作用是如果a<c,就交换a c的值。先把a的值赋给t,再将c的值赋给a,最后将t的值赋给c.
第3个回答  2016-06-29
通过中间变量t交换a和c中存放的数,执行后a存放原先存放在c中的数,c存放原先存放在a中的数

(c语言)输入4个整数,要求按由小到大的顺序输出。谢谢!!!
C语言大小字母输出

C语言编程,从键盘输入四个整数,按照数值从小到大顺序输出
for(int i = 0 ; i < 4 ; i++){ printf("%d ", num[i]);} return 0;}

用计算机C语言程序设计 输入4个整数,要求按由小到大的顺序输出
include"stdio.h"main(){int a[4],i,j;printf("请输入四个整数:\\n"); \/\/以空格分开\/\/ for(i=0;i<4;i++)scanf("%d",&a[i]);for(i=1;i<4;i++)for(j=0;j<=4-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("排列后的顺序是:\\...

C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?_百度知 ...
1、完成整体函数格局,输入、排序、输出。2、输入函数代码如下:3、排序函数代码如下:4、输出函数代码如下:5、执行结果:

...输入4个整数,要求按由小到大的顺序输出 怎么做啊?? 用循环做的...
第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最大数,该数将称为倒数第二的数组元素...n-1轮过后,就完成了排序。\/\/若要以降序顺序排列,则只需将 if(array[j]>array[j+1])语句中的大于号改为小于号即可。\/\/程序如下:#include<stdio.h>#define N 15void BubbleSort(int ...

用C语言编写:输入四个整数,按由小到大输出
可以用数组存储这4个数,然后用冒泡法进行排序,具体代码如下:include <stdio.h> void main(){ int i,j,temp;int a[4];printf("请输入四个数:\\n");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]){...

C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?(要用sw...
{ int i,j,temp;int a[4];printf("Please you input the four number you want to campare!\\n");for(i=0;i<4;i++) \/*输入要比较的四个数字*\/ scanf ("%d,",&a[i]);for(j=0;j<4;j++)\/*采用冒泡排序法排序*\/ { for (i=0;i<4-j;i++)if (a[i]>a[i+1]){ ...

一个c语言题; 输入4个整数,按从小到大的顺序输出.
我认为这个程序可以用函数来实现,如过用函数的话,程序会变得更加的简单。函数部分为:int p(int n,int m){ if(n>m)return(n);else return(m);} 就这样再在主函数中调用就行了!

用C语言 输入四个整数,要求按从小到大的顺序输出 先谢了!
include <stdio.h> int main(void){ int a[4];int i;int j;printf("请输入4个数字:\\n");for (i=0; i<4; i++){ scanf("%d", a[i]);} for (i=0; i<4; i++){ for (j=0; j<3-i; j++){ if (a[j] > a[j+1]){ t = a[j];a[j] = a[j+1];a[j+1...

C语言 输入4个整数,按要求从小到大的顺序输出 ,我写的程序哪里有问题...
亲,哪有你这样比较的。首先是输入4个整数,您直接定义成float浮点型,这就不对。最好是把这些数装入一个数组内,再排序。int main(){ int a[4]; int tmp,count,i_count; scanf("%d,%d,%d,%d", &a[0], &a[1], &a[2], &a[3]); for(count = 0, count < 3, ...

相似回答