#include<stdio.h>
void main()
{
int a,b,c,d,e;
scanf("%d,%d,%d,%d\n",&a,&b,&c,&d);
if(a<b) {e=a;a=b;b=e;}
if(c<d) {e=c;c=d;d=e;}
if(a<c) {e=a;a=c;c=e;}
if(b<c) {e=b;b=c;c=e;}
if(b<d) {e=b;b=d;d=e;}
if(c<d) {e=c;c=d;d=e;}
printf("%d,%d,%d,%d\n",a,b,c,d);
}
错在哪里?????
scanf("%d,%d,%d,%d\n",&a,&b,&c,&d);
这语句不需要 \n 这样的格式控制符
输入时要加上逗号 10,20,30,40 这样
如果想直接空格输入 10 20 30 40 的话,scanf里不要逗号。
scanf("%d%d%d%d",&a,&b,&c,&d); //这样子
哪里也没有错 但是你输入数据的时候 一定要注意有逗号的输入一个加一个逗号
你这个太不直观了,用其他方法吧。不过应该还是可以排出来
就看你这个语句scanf("%d,%d,%d,%d\n",&a,&b,&c,&d);输入时有没有加逗号。
你这排序太乱, 而且最好不用本来的数字直接进行交换, 最好用一个临时变量做过度
你看看我的
#include <stdio.h>
void main()
{
int n[4], tmp;
for (int i = 0; i <= 3; i++)
scanf("%d", &n[i]);
for (int i = 0; i <= 3; i++)
for (int j = i; j <= 3; j++)
if (n[i] > n[j])
{
tmp = n[i];
n[i] = n[j];
n[j] = tmp;
}
for (int i = 0; i <= 3; i++)
printf("%d\t", n[i]);
}
运行截图