【谭浩强课后习题】求输入的整数按从小到大排序
编译正确,运行程序出现乱码垃圾值求大佬解答菜鸟疑问,谢谢大哥{:5_92:}
#include<stdio.h>
int main(void)
{
int a,b,c,d,e;
printf("请输入4个数:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("%d,%d,%d,%d\n",a,b,c,d);
if(a>b)
{
e=b;
b=a;
a=e;
}
if(a>c)
{
e=c;
c=a;
a=e;
}
if(a>d)
{
e=d;
d=a;
a=e;
}
if(b>c)
{
e=c;
c=b;
b=e;
}
if(b>d)
{
e=d;
d=b;
b=e;
}
if(c>d)
{
e=d;
d=c;
c=e;
}
printf("从小到大排序为:\n");
printf("%d,%d,%d,%d\n",a,b,c,d);
return 0;
} 直接冒泡排序不好吗?{:10_248:}
#include<stdio.h>
int main()
{
int n, a, i, j, t;
printf("请输入4个数:");
for(i=0;i<4;i++)
{
scanf("%d",&a);
}
for(j=0;j<3;j++)
{
for(i=0;i<3-j;i++)
if(a>a)
{
t=a;
a=a;
a=t;
}
}
printf("从小到大排序为:\n");
for(i=0;i<3;i++)
{
printf("%d,",a);
}
printf("%d\n",a);
return 0;
} 本帖最后由 jackz007 于 2021-2-16 12:07 编辑
#include<stdio.h>
int main(void)
{
int d , i , j , t ;
printf("请输入4个数:") ;
for(i = 0 ; i < 4 ; i ++) scanf("%d" , & d) ;
printf("%d" , d) ;
for(i = 1 ; i < 4 ; i ++) printf(",%d" , d) ;
for(i = 0 ; i < 3 ; i ++) {
for(j = i + 1 ; j < 4 ; j ++) {
if(d > d) {
t = d ;
d = d ;
d = t ;
}
}
}
printf("\n%d" , d) ;
for(i = 1 ;i < 4; i ++) printf(",%d" , d) ;
} 程序是没错的,我猜你的输入格式应该错了
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
输入格式要与scanf里面的%d,%d,%d,%d对齐,例如5,6,4,3
数字中间的逗号不能漏(还要注意是英文的逗号还是中文下的逗号,因为中文和英文下的逗号是不同的),否则输出会乱码 你的代码没有问题,这是我把你的复制下来的。你应该是楼上所说的,输入问题 scanf_s("%d%d%d%d", &a, &b, &c, &d);改成这样就可以了 scanf("%d%d%d%d", &a, &b, &c, &d);这样就行了 一叶枫残 发表于 2021-2-16 18:14
程序是没错的,我猜你的输入格式应该错了
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
输入格式要与scanf里面的%d ...
file:///C:/Users/lvreny/Desktop/QQ%E6%88%AA%E5%9B%BE20210217094647.png
谢谢你,但是我去掉逗号才运行成功了,所以有逗号到底有关系吗 旺仔烧麦 发表于 2021-2-17 09:48
谢谢你,但是我去掉逗号才运行成功了,所以有逗号到底有关系吗
都说输入格式要与scanf对齐,看了我那个解释还不懂自己去百度(很基本的东西)。。。 一叶枫残 发表于 2021-2-17 16:12
都说输入格式要与scanf对齐,看了我那个解释还不懂自己去百度(很基本的东西)。。。
我懂你的意思了,抱歉 client_2233 发表于 2021-2-16 19:26
你的代码没有问题,这是我把你的复制下来的。你应该是楼上所说的,输入问题
谢谢你,麻烦了,我懂了
页:
[1]