|
发表于 2021-8-4 23:28:34
|
显示全部楼层
本帖最后由 大马强 于 2021-8-4 23:32 编辑
- #include <stdio.h>
- #include <math.h>
- #define NUMBER ch - 48 + sum * b
- int main()
- {
- int ch;
- int b = 10;
- double sum = -1;//long long int
- int max = pow(2,31) - 1;
- int min = pow(2,31) * (-1);
- int d = 0;
- printf("请输入待转换的字符串:");
- while((ch = getchar()) != '\n')
- {
- while(ch >= '0' && ch <= '9')
- {
- // NUMBER = ch - 48 + sum * b;
- if(sum == -1)
- {
- sum = 0;
- }if(NUMBER > max || NUMBER < min)
- {
- d = 1;
- break;
- }
- sum = NUMBER;
- break;
- }
- if(!(ch >= '0' && ch <= '9'))
- {
- if(sum != -1)
- {
- break;
- }
- }
- }
- if(sum == -1)
- {
- printf("并未找到任何数值!\n");
- }
- else if(d)
- {
- printf("数值超出范围,结果未定义!\n");
- }
- else
- {
- printf("结果是:%d\n",sum);
- }
- return 0;
- }
复制代码 |
|