C语言 求长方形面积 这个哪里错啦 帮看下 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/05 05:47:36
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a*b);
}
如上 这个是算长方形的面积的 我输入 100 100 算出的答案是 10000
可是当我把 100改成1000的时候 算出来的就是错误的结果 答案是16960
各位高手达人 大家知道错误在哪里吗?我刚开始自学C语言 所以对这个不懂啊

在有些编译器里,int的位数是16位(2字节),只能表示-32768——32767,100*10000用二进制表示是11110100001001000000,多出的位被截去,成为0100001001000000
换成十进制就是16960
你把int a,b换成long int a,b 就行了,它是用32位(4字节)表示的,就可以表示负的2的31次方到2的31次方-1

#include <iostream>
#include <math.h>
using namespace std;
void main()
{
int a,b;
cin>>a>>b;
cout<<endl;
cout<<a*b<<endl;
}

你用long int试一试

int 的范围太小,数据溢出了用long ing
也可以用字符串做大数位

最好再设置一个变量s,让这个变量s为float型,s=a*b,就可以了。
既然自学的,在类型那个章节详细解说了各种数据类型的数值范围,如果结果超出范围后将会产生内存溢出。当然结果不对。

int型是有范围的为 -2的7次方 到 2的7方减1,3万多一点。当你输入1000时候,结果1000000发生溢出。高位被截去,只显示了低16位的结果。去看一下书吧,上面有详细的解释,设计到了一些数在内存中储存的知识。

溢出 整型30000多

C语言求三角形面积 !!!!急啊! C语言怎么做求三角形面积 急!!!用C语言求三角形面积 一个长方形,长20厘米。如果长增加5厘米,面积就增加50立方厘米。求这个长方形的面积。 一个长方形的长增加2CM,宽减少1CM,它的面积不变;求这个长方形的面积? 长方形的长增加4cm,宽减少1cm,面积不变;这个长方形的长减少2cm,宽增加1cm,面积不变,求面积 一个长方形与一个正方形的周长比为6:5,长方形的长是宽的1.4倍,求这个长方形与正方形的面积之比是多少? 数学题一个圆形纸片剪开后,拼成一个宽等于半径,面积不变的近似长方形,这个长方形的周长是41.4厘米.求面积. 在一个半径为20厘米的圆形铁板上,截取一个面积最大而且长是宽的2倍的长方形,求这个长方形的面积和周长 一个长方形,恰分成6个正方形,其中最小的正方形的面积是1平方厘米,求这个长方形的面积。