小伊布 发表于 2020-5-10 14:18:42

第13课

#include <stdio.h>

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

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

      while ((ch = getchar()) != '\n')
      {

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

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

      return 0;
}

num = 10 * num + (ch - '0');为什么要10*num,如果不加只会输出最后一位,为什么

liuzhengyuan 发表于 2020-5-10 14:21:28

这样是为了累加
比如 我们想把 4 加在 123 的 后面
直接加的话就成 127 了,就不对了

要先把123 乘以 10,变成 1230
然后再加 4 ,变成 1234

KevinHu 发表于 2020-5-10 14:21:44

把num现有的数据往左挪一位,腾出地方放上个位
页: [1]
查看完整版本: 第13课