鲨鱼辣椒g 发表于 2021-1-29 14:05:06

if顺序结构 大佬帮忙看下

#include<stdio.h>

int main()
{
        int m,n;
        printf("请输入两个整数:");
        scanf("%d,%d",&m,&n);
       
        if((m>=1 && m<=500)&&(n>=1 && n<=500))
        {
                if(m%n == 0)
                {
                        printf("YES\n");
                }
                else
                {
                        printf("NO\n");       
                }
        }
        else
        {
                printf("error\n");
        }
       
}

if(m%n == 0)
这里为什么当输入的m不能被n整除的时候m%n!
也输出YES???

把else换成else if(m%n!=0)
也不行

sunrise085 发表于 2021-1-29 14:14:17

本帖最后由 sunrise085 于 2021-1-29 14:40 编辑

很大概率是因为你的scanf导致你得到的m和n并不是你输入的值。
建议:scanf之后printf看一下m和n的值;
注意:你写的scanf中两个格式化字符之间有个逗号,输入的时候也需要输入逗号,否则n的值就不是你输入的值了

关于scanf的一些细节,可以看看我之前回答的一些帖子

李京 发表于 2021-1-29 14:14:39

你的scanf("%d,%d",&m,&n);%d和%d中间有个英文的逗号 ','

你把输入的形式 给定了,
你要在m和n之间加个逗号才行
或者你把逗号不要,具体的问题,你去看看小甲鱼的scanf那一篇

李京 发表于 2021-1-29 14:19:27

sunrise085 发表于 2021-1-29 14:14
很大概率是因为你的scanf导致你得到的m和n并不是你输入的值。
建议:scanf之后printf看一下m和n的值;
注 ...

感觉你讲的,真的好,导师就是不一样

心驰神往 发表于 2021-1-29 14:32:23

本帖最后由 心驰神往 于 2021-1-29 14:34 编辑

应该就是楼上说的你输入有问题
scanf("%d,%d",&m,&n);
改成 scanf("%d %d",&m,&n);
输入的时候,中间用空格。
页: [1]
查看完整版本: if顺序结构 大佬帮忙看下