西班牙冒险港:学习C语言遇到的一点小问题

来源:百度文库 编辑:高校问答 时间:2024/05/05 20:04:16
程序要求:输入一个小于4位数得数
要求:求出它是几位数?将其打印
出来,然后逆序输出
这是我的编写的:
#include<stdio.h>
void main()
{
int ge,shi,bai, qian,num,digit;
printf("pls input a num:\n");
scanf("num=%d\n");
qian=num/1000;
bai=num/100%10;
shi=num%100/10;
ge=num%10;

if(num>999)
{
digit=4;
printf("digit=%d\n",digit);
printf("each digit is %d %d %d %d\n",qian,bai,shi,ge);
printf("inversed num is :");
printf("each digit is %d %d %d %d\n",ge,shi,bai,qian);
}
else
if(num>99)
{
digit=3;
printf("digit=%d\n",digit);
printf("each digit is %d %d %d\n",bai,shi,ge);
printf("inversed num is :");
printf("each digit is %d %d %d\n",ge,shi,bai);
}
else
if(num>9)
{
digit=2;
printf("digit=%d\n",digit);
printf("each digit is %d %d\n",shi,ge);
printf("inversed num is :");
printf("each digit is %d %d\n",ge,shi);
}
else
{ digit=1;
printf("digit=%d\n",digit);
printf("each digit is %d\n",ge);
printf("inversed num is :");
printf("each digit is %d\n",ge);
}
}

但是但是我输入一个数字之后,运行结果都是一样的比如
我输入1987
digit=4
each digit is 3129 inversed num is 9213 each digit is 9213

qq上的朋友说是if语句出了问题,但是我还是不明白错再拿了?
如果您有空,请直接加我QQ 418768751 谢谢!!!!!!!!!1

输入语句错误,改成
scanf("%d",&num);

scanf("%d",&num);

scanf("num=%d\n");
这句错了,改成
scanf("%d", &num);

#include<stdio.h>
void main()
{
int ge,shi,bai, qian,num,digit;
printf("pls input a num:\n");
scanf("%d", &num);
qian=num/1000;
bai=num/100%10;
shi=num%100/10;
ge=num%10;

if(num>999)
{
digit=4;
printf("digit=%d\n",digit);
printf("each digit is %d %d %d %d\n",qian,bai,shi,ge);
printf("inversed num is :");
printf("each digit is %d %d %d %d\n",ge,shi,bai,qian);
}
else if(num>99)
{
digit=3;
printf("digit=%d\n",digit);
printf("each digit is %d %d %d\n",bai,shi,ge);
printf("inversed num is :");
printf("each digit is %d %d %d\n",ge,shi,bai);
}
else if(num>9)
{
digit=2;
printf("digit=%d\n",digit);
printf("each digit is %d %d\n",shi,ge);
printf("inversed num is :");
printf("each digit is %d %d\n",ge,shi);
}
else
{
digit=1;
printf("digit=%d\n",digit);
printf("each digit is %d\n",ge);
printf("inversed num is :");
printf("each digit is %d\n",ge);
}
}

日了,错的离谱了!
下面是改的地方!
这个是求个,十,百,千位值的部分以及打印这个数字
int ge,shi,bai, qian,num,digit;
printf("pls input a num:\n");
scanf("%d", &num);
if(num>999)
printf("ERROR");
else
{printf("%d",num);
qian=num%1000;
bai=(num-1000*qian)%100;
shi=(num-1000*qian-100*bai)%10;
ge=num-1000*qian-100*bai-10*shi;
}
printf("%d %d %d %d",qian bai shi ge)
下面给出逆数字:
dig=1000*ge+100*shi+10*bai+qian;
printf("%d",dig)

好长时间没写C了!有什么不对的,自己改正!