728252187 发表于 2020-9-12 11:22:52

c语言第13讲问题

#include <stdio.h>

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

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

      do
      {
                ch = getchar();

                if (ch >= '0' && ch <= '9')
                {
                        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;
}

这里为什么要用到else,不用貌似也没啥影响,还有if括号里的num是什么意思,ch为什么不能等于'\n’,#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;
}

这里为什么要用到else,不用貌似也没啥影响,还有if括号里的num是什么意思,ch为什么不能等于'\n’#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;
}

这里为什么要用到else,不用貌似也没啥影响,还有if括号里的num是什么意思,ch为什么不能等于'\n’。
else
                {
                        if (num)
                        {
                              break; // 如果已有数字,则退出循环
                        }
                }
这一段我感觉有些多余啊!

728252187 发表于 2020-9-12 11:31:39

{:10_249:}

巴巴鲁 发表于 2020-9-12 11:45:35

if (num)表示如果num为真,是if(num != 0)的简写
else在这里的作用是如果输入的不是0~9,而且num不为0时,退出循环(break)
ch != '\n只是作为循环结束的一个条件,你也可以用'#','@'等字符表示循环结束

728252187 发表于 2020-9-12 11:56:24

巴巴鲁 发表于 2020-9-12 11:45
if (num)表示如果num为真,是if(num != 0)的简写
else在这里的作用是如果输入的不是0~9,而且num不为0时, ...

谢谢
页: [1]
查看完整版本: c语言第13讲问题