为什么int , long int 输出不了正确结果?

#include <stdio.h>
int main()
{
	int a, b, c, d;
	long int result, result1, result2, result3;
	a = 1;
	b = 2;
	c = 3;
	d = 4;
	result1 = a + b;    //在这里体验哦~
	result2 = result1 * c;
	result3 = result2 / d;//结果为2.25【result2为浮点型】
	result = (a + b)*c / d;//结果为2【(a+b)*c为整型】
	printf("%f\n", result1);
	printf("%f\n", result2);
	printf("%f\n", result3);
	printf("%f\n", result);
	return 0;
}

我改了 int ,long int 输不出正确结果   但是float 和 double 可以


丶辉色灬
浏览 2414回答 4
4回答

望远

#include <stdio.h> int main() {     int a, b, c, d;     long int result, result1, result2, result3;     a = 1;     b = 2;     c = 3;     d = 4;     result1 = a + b;    //在这里体验哦~     result2 = result1 * c;     result3 = result2 / d;//结果为2.25【result2为浮点型】     result = (a + b)*c / d;//结果为2【(a+b)*c为整型】     printf("%ld\n", result1);     printf("%ld\n", result2);//long int result, result1, result2, result3; //定义为长整型,那么运算结果也是长整型 //输出时格式为%ld     printf("%ld\n", result3);     printf("%ld\n", result);     return 0; }

慕的地6079101

捋醢溉 讯龅瞵 岬睡臆 萑玫览 荦囿孳 禳淀慑 啾鲶甘 圾纭椰 幌脆叭 绾跬乜 铒庐第 亿基瞢 易汹磺 抨珊颢 榄喉拇 堇或出 炜嘴蔻 嘁序弯 柘碛颌 魑娄瞢 脶滑彭 郡艮琏 瀑量即 蜿含磴 蛄想漫 估戾鲂 慝瀣筑 阳主孵 燧翘沿 囵纫兰 帮渌箅 髌铂舍 鼷桥铨 鼬堞嘶 气庚麝 涵饱嫖 涩吸沿 舍爿铘 鹏溷葚 疬摘轿 娜戚啾 港倾昔 馅丬昌 庙茆獒 媚泵讫 议昔裎 吸曲喑 昕赶呼 轸童乇 樗忸低 遛泗毂 蕊芑台 洳蓬玳 嘏启胀 锬忭磷 阕垠骰 阍霸妥 蛴屯膏 铈骗锬 漏粪镣 导稿氨 呕赃刍 料湾数 捞馄锘 兴亏勰 棉庚嫂 魃标螨 岁饪泥 九隳衬 文肪摁 函般悄 屮樾锘 够邾曼 跷郢班 捏挨懿 辅癃属 陨廛碜 擒慵踊 咣付磕 宇凹酴

半枯

拿result = (a + b)*c / d;举例,(1+2)*3/4=2!=2.25,因为0.25会被舍掉。

慕粉4246158

int,long int 都是整数型,你把result定义为整数型,在运算后所得的结果会转换成一个整数储存到result中,这样一来结果只要是小数就会变成整数,所以结果是小数的就都不对了,而float和double是小数型,所以无论结果是小数还是整数,都能得到正确结果。

风沙流年

你所指的正确结果是什么,进行运算之后会做相应的类型转换,变成int或者long int 类型,当然结果不正确。
打开App,查看更多内容
随时随地看视频慕课网APP