记住我啊 发表于 2020-6-16 14:57:28

C程序设计第四章习题9

给一个不多于4位的正整数,要求打印这个数是几位数,为什么运行结果不对,求指导。(C程序设计第四章习题9)

不论输入什么数字,x始终等于4。

#include <stdio.h>
int main()
{
        int num,x;
        printf("input a number:\n");
        scanf("%d",&num);
        if(num%1000==0)
        {
                if(num%100==0)
                {
                        if(num%10==0)
                        {
                                x=1;
                  }
                        else x=2;
                }
                else x=3;
        }
        else x=4;
        printf("x=%d\n",x);
        printf("num=%d\n",num);
}


405794672 发表于 2020-6-16 15:38:32

本帖最后由 405794672 于 2020-6-16 15:40 编辑

你。。。。。。。
你要搞明白什么叫取余
数字取余1000=0,表示它正好被1000整除。假如我是2000呢?,就不符合等于4了
而且只是正好整除才不符合,其它都符合。包括,如果我输入的是1,那么它取余1000,结果为1
也就符合你的else了。也就x=4了。
你应该是除以而不是取余。if(x/1000==0)

记住我啊 发表于 2020-6-16 15:40:28

405794672 发表于 2020-6-16 15:38
你。。。。。。。
你要搞明白什么叫取余
数字取余1000=0,表示它正好被1000整除。假如我是2000呢?,就不 ...

谢谢~
页: [1]
查看完整版本: C程序设计第四章习题9