C语言用三目运算方法给四个数排序怎么做?#include"stdio.h"main(){\x09int a,b,c,d,q;\x09printf("请输入四个数并用逗号隔开:");\x09scanf("%d,%d,%d,%d",&a,&b,&c,&d);\x09q=(b>=a)?a,a=b,b=q:b;\x09q=(c>=a)?a,a=c,c=q:c;\x09q=(d>=a
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/18 22:33:49
![C语言用三目运算方法给四个数排序怎么做?#include](/uploads/image/z/664145-17-5.jpg?t=C%E8%AF%AD%E8%A8%80%E7%94%A8%E4%B8%89%E7%9B%AE%E8%BF%90%E7%AE%97%E6%96%B9%E6%B3%95%E7%BB%99%E5%9B%9B%E4%B8%AA%E6%95%B0%E6%8E%92%E5%BA%8F%E6%80%8E%E4%B9%88%E5%81%9A%3F%23include%22stdio.h%22main%28%29%7B%5Cx09int+a%2Cb%2Cc%2Cd%2Cq%3B%5Cx09printf%28%22%E8%AF%B7%E8%BE%93%E5%85%A5%E5%9B%9B%E4%B8%AA%E6%95%B0%E5%B9%B6%E7%94%A8%E9%80%97%E5%8F%B7%E9%9A%94%E5%BC%80%EF%BC%9A%22%29%3B%5Cx09scanf%28%22%25d%2C%25d%2C%25d%2C%25d%22%2C%26a%2C%26b%2C%26c%2C%26d%29%3B%5Cx09q%3D%28b%3E%3Da%29%3Fa%2Ca%3Db%2Cb%3Dq%3Ab%3B%5Cx09q%3D%28c%3E%3Da%29%3Fa%2Ca%3Dc%2Cc%3Dq%3Ac%3B%5Cx09q%3D%28d%3E%3Da)
C语言用三目运算方法给四个数排序怎么做?#include"stdio.h"main(){\x09int a,b,c,d,q;\x09printf("请输入四个数并用逗号隔开:");\x09scanf("%d,%d,%d,%d",&a,&b,&c,&d);\x09q=(b>=a)?a,a=b,b=q:b;\x09q=(c>=a)?a,a=c,c=q:c;\x09q=(d>=a
C语言用三目运算方法给四个数排序怎么做?
#include"stdio.h"
main()
{
\x09int a,b,c,d,q;
\x09printf("请输入四个数并用逗号隔开:");
\x09scanf("%d,%d,%d,%d",&a,&b,&c,&d);
\x09q=(b>=a)?a,a=b,b=q:b;
\x09q=(c>=a)?a,a=c,c=q:c;
\x09q=(d>=a)?a,a=d,d=q:d;
\x09q=(c>=b)?b,b=c,c=q:c;
\x09q=(d>=b)?b,b=d,d=q:d;
\x09q=(d>=c)?c,c=d,d=q:d;
\x09printf("%d,%d,%d,%d",a,b,c,d);
}
不知道哪里错了,比如输入"1,2,3,4",会输出"4,-858993460,-858993460,-858993460"C语言用三目运算方法给四个数排序怎么做?#include"stdio.h"main(){\x09int a,b,c,d,q;\x09printf("请输入四个数并用逗号隔开:");\x09scanf("%d,%d,%d,%d",&a,&b,&c,&d);\x09q=(b>=a)?a,a=b,b=q:b;\x09q=(c>=a)?a,a=c,c=q:c;\x09q=(d>=a
q=(b>=a)?a,a=b,b=q:b;用错了
当b>=a时,执行的是 q = (a,a=b,b=q) 而不是 q = a,a=b,b=q.而(a,a=b,b=q)的值是最后的q的值.所以q = (a,a=b,b=q)的效果等价于 q=q;a=b;b=q; 由于q没有赋值,所以系统默认为-858993460,于是当当b>=a时,a=b了,b=-858993460,q依然=-858993460,于是结果错了.
#include"stdio.h"
main()
{
int a,b,c,d,q;
printf("请输入四个数并用逗号隔开:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
(b>a)?q=a,a=b,b=q:a; //排序的时候用>、<符号就可以了,更有效率
(c>a)?q=a,a=c,c=q:a;
(d>a)?q=a,a=d,d=q:a;
(c>b)?q=b,b=c,c=q:b;
(d>b)?q=b,b=d,d=q:b;
(d>c)?q=c,c=d,d=q:c;
printf("%d, %d, %d, %d\n",a,b,c,d);
}