编程论坛
注册
登录
编程论坛
→
C语言论坛
为什么出错?
汤姆狗
发布于 2020-10-05 21:54, 852 次点击
只有本站会员才能查看附件,请
登录
2 回复
#2
风过无痕1989
2020-10-06 01:07
回复 楼主 汤姆狗
程序代码:
# include
<stdio.h>
int
main()
{
int
a,i,b,c;
//
你的程序 i 后面有一竖杠
double
d;
//
我的系统不支持变量随用随定义,故移到此;若你系统支持,此句可不预理睬
scanf (
"
%d
"
,&a);
//
scanf() 中引号后那个不知啥玩艺,不要
for
(i =
1
;i <= a; i++)
//
这个循环没有意义,因为循环体内的两个语句都与变量 i 无关
{
b = a * a;
//
C语言不能将两个语句用逗号隔开
c = (a +
1
) * (a +
1
);
}
//
循环体结束时不需要分号
d =
1.00
* b / c;
//
整型除以整型,要强制转换为双精度 double 型,必须得让右侧为 double 型再运算
printf (
"
%lf
"
,d);
//
double 型数据输出,要用 lf (字母L的小写,不是1)
return
0
;
}
#3
纯蓝之刃
2020-10-06 07:05
你这个应该是你编译或debug的时候,上一次运行的窗口没有关闭,导致的文件调用冲突导致的。也就是你编译的时候会更改这个exe执行文件,如果这个文件被打开开了,就不允许写入,这样编译就失败了。
你程序里有几处楼上所说的问题
b = a * a;
c = (a + 1) * (a + 1);
语句应该使用分号隔开
d = 1.00 * b / c;
d = (double)b / c;
以上两种方法都可以应该使b或者c变为double类型在进行计算,否则d的值是b/c得到整数后的值在转换的
printf ("%lf",d);
doule类型使用%lf输出,%f是float类型的输出。
1