我的C程序没有显示任何错误,但之后它没有运行

时间:2015-09-01 15:16:19

标签: c

这是按下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;
    }

4 个答案:

答案 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)