孤世星辰 发表于 2018-10-11 12:08:29

这个putchar为什么会输出两次

calton007 发表于 2018-10-11 12:47:00

假设 ch 满足第一个if的条件,会执行 ch= ch + 32
这样 ch 在加了 32 之后,就会满足第二个 if 的条件

这两个条件应该是第一个条件不满足的情况下,再判断第二个条件,所以应该在第二个if前加上else

claws0n 发表于 2018-10-11 13:20:01

int main()
{
        int ch;
        printf("sentence\n");
        while((ch = getchar()) != '\n')
        {
                if(ch >= 65 && ch <= 90)
                {
                        putchar(ch + 32);
                }
                if(ch >= 97 && ch <= 122)
                {
                        putchar(ch - 32);
                }
        }

    return 0;
} 原本 65~90,+32 ,符合下面的条件,所以又打印多一次

孤世星辰 发表于 2018-10-16 12:35:22

calton007 发表于 2018-10-11 12:47
假设 ch 满足第一个if的条件,会执行 ch= ch + 32
这样 ch 在加了 32 之后,就会满足第二个 if 的条件



嗯嗯懂了

孤世星辰 发表于 2018-10-16 12:36:07

claws0n 发表于 2018-10-11 13:20
原本 65~90,+32 ,符合下面的条件,所以又打印多一次

嗯嗯谢谢
页: [1]
查看完整版本: 这个putchar为什么会输出两次