四位整数逆序部分错误,如何解决?(语言-c语言)

img

在上题中,我输入如下代码,显示部分错误,希望指正如何更改可以完全正确

img

#include

int main() {

int a=0, ge=0, shi=0, bai=0, qian=0;

scanf("%d",&a);
if(a>=1000&&a<=9999){
    ge = a % 10;
    shi = a % 100 / 10;
    bai = a % 1000 / 100;
    qian = a / 1000;
    printf("%d is changed to:%d",a,qian+bai*10+shi*100+ge*1000);
    return 0;
}

}

你的方法输出不了0,如1000就输出了1

修改后

img

#include<stdio.h>
int main()
{
    int a=0, ge=0, shi=0, bai=0, qian=0;
    scanf("%d",&a);
    if(a>=1000&&a<=9999)
    {
        ge = a % 10;
        shi = a % 100 / 10;
        bai = a % 1000 / 100;
        qian = a / 1000;
        printf("%d is changed to:%d%d%d%d",a,ge,shi,bai,qian);
    }
    return 0;
}

img

建议用这个方法做
这样简单很多

#include<stdio.h>
int main() 
{
int a=0;
scanf("%d",&a);
printf("%d is changed to:",a);
while(a)
{
    printf("%d",a%10);
    a/=10;
}
return 0;
}

表面看沒什么问题啊。
题目没有说1000的倒序到底是1还是0001
return 0放到if代码块之后

printf那行加个回车换行试试 可能是输出和输入的要求和格式问题

下边提示是scanf返回值问题么,改成void看看 (void)scanf("%d",&a);

部分错误,可能是后缀带0的数逆序输出还需要带0,如1000输出为0001,可以将

printf("%d is changed to:%d",a,qian+bai*10+shi*100+ge*1000);

修改为

printf("%d is changed to:%04d",a,qian+bai*10+shi*100+ge*1000);

#include<stdio.h>
int main()
{
    int num=0,a=0, b=0, c=0, d=0,i=0;
    do{
     scanf("%d",&num);//不满足就不断获取控制台输入
    if(num>=1000&&num<=9999)
    {
        a= num % 10;
        b= num% 100 / 10;
        c= num% 1000 / 100;
        d = num/ 1000;
        printf("%d is changed to:%d%d%d%d",num,a,b,c,d);
break;}
else{printf("数据不合题意,请重新输入:/n");}
    }while(i==0);
}    
    return 0;
}

void)scanf("%d",&a);

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632