宇与鱼 发表于 2017-12-23 15:09:18

???

程序其中的(num = 10 * num + (ch - '0');)这一点不理解,谁能解释一下???


#include <stdio.h>

int main()
{
        int ch;
        int num = 0;

        printf("请输入待转换的字符串:");

        do
        {
                ch = getchar();

                if (ch >= '0' && ch <= '9')
                {
                        num = 10 * num + (ch - '0');
                }
                else
                {
                        if (num)
                        {
                                break; // 如果已有数字,则退出循环
                        }
                }

        }
        while (ch != '\n');

        printf("结果是:%d\n", num);

        return 0;
}

qq1242009750 发表于 2017-12-23 15:33:15

解答:

BngThea 发表于 2017-12-23 15:34:54

ch是字符'1'-'9',减去'0'可以得到实际的数字1-9
前面的乘10是将上一次的数左移一位

宇与鱼 发表于 2017-12-23 15:38:38

qq1242009750 发表于 2017-12-23 15:33
解答:

好详细啊,谢谢了

宇与鱼 发表于 2017-12-23 15:39:08

BngThea 发表于 2017-12-23 15:34
ch是字符'1'-'9',减去'0'可以得到实际的数字1-9
前面的乘10是将上一次的数左移一位

页: [1]
查看完整版本: ???