这是按下ctrl + f9时没有显示任何错误的程序。 它说按任意键继续,我这样做,然后它不会运行 我使用turbo c ++ 4.0,我已经以.c格式保存了文件 请建议我应该做的更改来执行我的程序。
由于
# include <stdio.h>
# include <conio.h>
float main()
{
float l,b,r;
float circ,area,arsq,peri;
clrscr ();
printf ("Enter the length of the rectangle: ");
scanf ("%f", l);
printf ("\nEnter the breadth of the rectangle: ");
scanf ("%f", b);
printf ("\nEnter the radius of the circle: ");
scanf ("%f", r);
peri = l+b+l+b;
area = 3.14*r*r;
arsq = l*b;
circ = 3.14*2*r;
printf ("\n\nThe perimeter of the rectangle is: %f",peri);
printf ("\n\nThe area of the rectangle is: %f",arsq);
printf ("\n\nThe circumfrence of the circle is: %f",circ);
printf ("\n\nThe area of the circle is: %f",area);
getch();
return 0;
}
答案 0 :(得分:5)
更改
scanf ("%f", l);
scanf ("%f", b);
scanf ("%f", r);
要
scanf ("%f", &l);
scanf ("%f", &b);
scanf ("%f", &r);
这些%f
中的scanf
期望变量的地址(float*
)而不是其值。
此外,根据标准,main
应该返回int
,而不是float
。
答案 1 :(得分:1)
使用int main()
。 C标准要求返回类型为int:
(5.1.2.2.1)它应定义为返回类型为int且没有参数...或带有两个参数......或者以其他一些实现定义的方式
答案 2 :(得分:0)
main函数应返回int否则会出现意外行为,我认为这是副作用之一。
答案 3 :(得分:-2)
如果您使用的是turbo C ++,则应在程序中使用 void main()而不使用 return 语句。 此外, scanf(“%f”,l)不正确,它在turbo c ++中没有显示错误,但你需要将变量的地址作为第二个争论传递给scanf()函数,如 scanf(“%f”,&amp; l)。