鱼C论坛

 找回密码
 立即注册
查看: 1292|回复: 10

[已解决]【谭浩强课后习题】求输入的整数按从小到大排序

[复制链接]
发表于 2021-2-16 11:27:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编译正确,运行程序出现乱码垃圾值
求大佬解答菜鸟疑问,谢谢大哥
#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;
}
最佳答案
2021-2-16 23:50:52
scanf_s("%d%d%d%d", &a, &b, &c, &d);改成这样就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-16 11:53:11 | 显示全部楼层
直接冒泡排序不好吗?
#include<stdio.h>
int main()
{
        int n, a[10], i, j, t;
        printf("请输入4个数:");
        for(i=0;i<4;i++)
        {
                scanf("%d",&a[i]);
        }
        for(j=0;j<3;j++)
        {
                for(i=0;i<3-j;i++)
                        if(a[i]>a[i+1])
                        {
                                t=a[i];
                                a[i]=a[i+1];
                                a[i+1]=t;
                        }
        }
         printf("从小到大排序为:\n");
        for(i=0;i<3;i++)
        {
                printf("%d,",a[i]);
        }
        printf("%d\n",a[3]);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-16 11:56:48 | 显示全部楼层
本帖最后由 jackz007 于 2021-2-16 12:07 编辑
#include<stdio.h>
int main(void)
{
        int d[4] , i , j , t                           ;
        printf("请输入4个数:")                        ;
        for(i = 0 ; i < 4 ; i ++) scanf("%d" , & d[i]) ;
        printf("%d" , d[0])                            ;
        for(i = 1 ; i < 4 ; i ++) printf(",%d" , d[i]) ;
        for(i = 0 ; i < 3 ; i ++) {
                for(j = i + 1 ; j < 4 ; j ++) {
                        if(d[i] > d[j]) {
                                t = d[i]               ;
                                d[i] = d[j]            ;
                                d[j] = t               ;
                        }
                }
        }
        printf("\n%d" , d[0])                          ;
        for(i = 1 ;i < 4; i ++) printf(",%d" , d[i])   ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-16 18:14:36 | 显示全部楼层
程序是没错的,我猜你的输入格式应该错了
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
输入格式要与scanf里面的%d,%d,%d,%d对齐,例如5,6,4,3
数字中间的逗号不能漏(还要注意是英文的逗号还是中文下的逗号,因为中文和英文下的逗号是不同的),否则输出会乱码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-16 19:26:20 | 显示全部楼层
你的代码没有问题,这是我把你的复制下来的。你应该是楼上所说的,输入问题
189N(8_QQ85C3$_UCPHCZ_K.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-16 23:50:52 | 显示全部楼层    本楼为最佳答案   
scanf_s("%d%d%d%d", &a, &b, &c, &d);改成这样就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-16 23:51:53 | 显示全部楼层
scanf("%d%d%d%d", &a, &b, &c, &d);这样就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-17 09:48:30 | 显示全部楼层
一叶枫残 发表于 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
谢谢你,但是我去掉逗号才运行成功了,所以有逗号到底有关系吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-17 16:12:13 | 显示全部楼层
旺仔烧麦 发表于 2021-2-17 09:48
谢谢你,但是我去掉逗号才运行成功了,所以有逗号到底有关系吗

都说输入格式要与scanf对齐,看了我那个解释还不懂自己去百度(很基本的东西)。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-2-19 09:31:48 | 显示全部楼层
一叶枫残 发表于 2021-2-17 16:12
都说输入格式要与scanf对齐,看了我那个解释还不懂自己去百度(很基本的东西)。。。

我懂你的意思了,抱歉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-19 09:32:17 | 显示全部楼层
client_2233 发表于 2021-2-16 19:26
你的代码没有问题,这是我把你的复制下来的。你应该是楼上所说的,输入问题

谢谢你,麻烦了,我懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 15:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表