鱼C论坛

 找回密码
 立即注册
查看: 655|回复: 2

[已解决]C程序设计第四章习题9

[复制链接]
发表于 2020-6-16 14:57:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
给一个不多于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);
} [/code]


最佳答案
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表