|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 a89361461 于 2017-6-10 17:59 编辑
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int ch;
- long long num = 0;
- long long temp; // 临时变量,用于测试是否超出范围
- int is_overflow = 0;
- const int max_int = pow(2, sizeof(int) * 8) / 2 - 1;
- const int min_int = pow(2, sizeof(int) * 8) / 2 * (-1);
- printf("请输入待转换的字符串:");
- do
- {
- ch = getchar();
- if (ch >= '0' && ch <= '9')
- {
- temp = 10 * num + (ch - '0');
- if (temp > max_int || temp < min_int)
- {
- is_overflow = 1;
- break;
- }
- else
- {
- num = temp;
- }
- }
- else
- {
- if (num)
- {
- break; // 如果已有数字,则退出循环
- }
- }
- }
- while (ch != '\n');
- if (is_overflow)
- {
- printf("数值超出范围,结果未定义!\n");
- }
- else
- {
- if (!num)
- {
- printf("并未找到任何数值!\n");
- }
- else
- {
- printf("结果是:%d\n", num);
- }
- }
- return 0;
- }
复制代码
第22行代码 temp = 10 * num + (ch - '0');
什么意思看不懂
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int ch;
- long long num = 0;
- long long temp; // 临时变量,用于测试是否超出范围
- int is_overflow = 0;
- const int max_int = pow(2, sizeof(int) * 8) / 2 - 1;
- const int min_int = pow(2, sizeof(int) * 8) / 2 * (-1);
- printf("请输入待转换的字符串:");
- do
- {
- ch = getchar();
- if(ch >= '0' && ch <= '9')
- {
- temp = 10 * num + (ch - '0');
- num = temp;
- }
- else
- {
- if(num)
- {
- break; // 如果已有数字,则退出循环
- }
- }
- } while(ch != '\n');
- printf("结果是:%d\n", num);
- return 0;
- }
复制代码
|
|