|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
哪位大神可以帮忙看看为什么打印数额超出范围有bug
#include <stdio.h>
#include <math.h>
#define X int_max
#define N int_min
int main()
{
char ch;
int num=0,over=0;
long long int temp=0;
const int X=pow(2,31)-1;
const int N=-pow(2,31);
printf("请输入字符串:");
do{
ch=getchar();
if (ch>='0'&&ch<='9'){
temp=10*num+(ch-'0');
if (temp>X||temp<N){
over=1;break;
}
else num=temp;
}
else if (num) break;
}while (ch!='\n');
if (over){
printf("数额超出范围");
}
else if (!num&&!temp)
printf("无有效数额");
else
printf("结果为%d",num);
return 0;
}
因为你中间变量范围是int,你不断地*10+ch-'0' 他就会不断溢出的怎么也不会 不符合 temp>X || temp< N的
|
|