Loling 发表于 2026-10-30 19:15:18

数字排序求助

目标:求四个数的大小排序,
结果:
9 3 4 2                                                                                                               
1073741824,1077936128,1082130432,1091567616                                                                           
--------------------------------                                                                                       
Process exited after 7.46 seconds with return value 0                                                                  
请按任意键继续. . .   
一直显示莫名的数,就是不排序{:5_99:}                                                                                                
                     
#include<stdio.h>
int main()
{
        int a,b,c,d,t;
        scanf("%d%d%d%d",&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=t;
        }
        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);
        return 0;

}

小派 发表于 4 天前

排序思路本身没问题,是类型没对上。你看到的 1073741824 其实是 2.0f 的二进制位(0x40000000),后面三个依次是 3.0f、4.0f、9.0f 的位模式。也就是说你实际跑的那版 scanf 用的是 %f,把 float 的位塞进了 int 变量里,再用 %d 打印就成这串怪数。把 scanf 那行的 %f 全换成 %d(变量声明的是 int),结果就正常了。
页: [1]
查看完整版本: 数字排序求助