为什编C语言运行不了?

来源:百度知道 编辑:UC知道 时间:2024/05/26 01:42:45
已知a=3,b=2,c=2.5计算(float)(a+b)/3+(int)c的值:
===================================================
#include <stdio.h>
main()
{
int a=3,b=2;
float c=2.5,sum=(float)(a+b)/3+(int)c;
printf("sum=%d",sum);
}
===========================================
但是,一运行就出现,16位MS-DOS子系统
c:\WINDOWS\system32\cmd.exe-sum
NTVDM CPU 遇到无效指令.
CS:0dea IP:0103 OP:63 6c 75 64 65选择"关闭"终止应用程序.
关闭(C) 忽略(I)
这是为什么呀,好几个自已编的,都是这样,是我写的不对,还是别的,请
您帮忙.
不好意思好像都不管用;无法实现环境变量提示找不到SET

我试着运行了一下,你的程序,没有出现

16位MS-DOS子系统
c:\WINDOWS\system32\cmd.exe-sum
NTVDM CPU 遇到无效指令.
CS:0dea IP:0103 OP:63 6c 75 64 65选择"关闭"终止应用程序.
关闭(C) 忽略(I)

你的程序给整型变量a=3,b=2,然后给实型变量c=2.5,同时定义sum为实型变量,又给了sum的表达式为"sum=(float)(a+b)/3+(int)c"在(float)(a+b)/3的结果为1.666667,而(int)c则是2,所以sum=3.666667,但是实际上,你在前面定义了sum的实型变量类型后,最后的输出却用十进制整型来输出,造成了混乱,因此,我用你写得程序得到的sum值是"sum=0",并没有得到预期的结果,因为你的最后输出时,给sum的输出形式"%d"十进制整型,所以得到的结果只能为0了
我想,你的这个程序是不是应该这样写呀:
#include<stdio.h>
void main()
{
int a=3,b=2,sum;
float c=2.5;
sum=(float)(a+b)/3+(int)c;
printf("sum=%d\n",sum);
}
所以,我觉得你把sum的表达式和sum的基类型分开来写,可能会好一点儿,这样得到的sum是十进制整型
#include<stdio.h>
void main()
{
int a=3,b=2;
float c=2.5,sum;
sum=(float)(a+b)/3+(int)c;
printf("sum=%f\n",sum);
}
这样得到的是实数类型的sum值
我想,你在