簡體   English   中英

我的C程序沒有顯示任何錯誤,但此后它沒有運行

[英]My C program doesn't show any error but after that it does not run

這是程序,按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;
    }

更改

scanf ("%f", l);
scanf ("%f", b);
scanf ("%f", r);

scanf ("%f", &l);
scanf ("%f", &b);
scanf ("%f", &r);

由於那些scanf%f期望變量的地址( float* )而不是其值。

同樣, main應該按照標准返回int ,而不是float

使用int main() C標准要求int的返回類型:

(5.1.2.2.1)必須使用返回類型int且不使用參數...或使用兩個參數...或以其他實現定義的方式定義它

main函數應該返回int,否則您將得到意外的行為,我認為這是副作用之一。

如果使用的是Turbo C ++,則應在程序中使用void main()且沒有return語句。 另外, scanf(“%f”,l)是不正確的,在turbo c ++中沒有顯示錯誤,但是您需要將變量的地址作為第二個參數傳遞給scanf()函數,例如scanf(“%f”,&l)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM