在上题中,我输入如下代码,显示部分错误,希望指正如何更改可以完全正确
#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
修改后
#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;
}
建议用这个方法做
这样简单很多
#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);
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!