[問題] 關於大數放到小數中...
目的是想要讓大的數放到小的數中時,顯示overflow
如果是在data type範圍內的,就可以正常顯示...
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<assert.h>
/*
撰寫程式時,要注意data type的強制轉換。
*/
bool check(int bigInt);
int main(void)
{
//int a=123456789;
int a;
short b;
printf("input a number\n");
scanf("%d", &a);
assert(a<2147483647);
if(check(a)==true){
b=a;
printf("%d\n",b);
}
else
printf("overflow");
system("pause");
return 0;
}
bool check(int bigInt)
{
if(bigInt<=SHRT_MAX && bigInt >=SHRT_MIN)
{
return true;
}
else
return false;
}
其中有參考了
http://en.wikipedia.org/wiki/Limits.h
但現在問題在於...怎麼跑也不會跑到assert()
在使用者輸入時,若是輸入超過int的界限,就已經爆掉了
根本跑不下去...
不知道要怎麼設計成使用者輸入時就可以檢查界限範圍呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.52.56
推
01/11 22:23, , 1F
01/11 22:23, 1F
→
01/11 22:23, , 2F
01/11 22:23, 2F
→
01/11 22:23, , 3F
01/11 22:23, 3F
→
01/11 22:24, , 4F
01/11 22:24, 4F
→
01/11 22:25, , 5F
01/11 22:25, 5F
→
01/11 22:26, , 6F
01/11 22:26, 6F
→
01/11 22:27, , 7F
01/11 22:27, 7F
→
01/11 22:27, , 8F
01/11 22:27, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章