2014-08-28 24 views
-3

我有一個程序,我試圖找到POW(I,4 c)中給出的運行時錯誤

#include<stdio.h> 
#include<math.h> 
void main() 
{ 
    int a,i=1,sum=0; 
    scanf("%d",&a); 
    do 
    { 
     sum+=pow(i,4); 
     i++; 
    }while(i<=a); 
    printf("%d",sum); 
} 

當我運行在它上面是給直到N值沒有的第四功率的總和運行時錯誤「浮點:堆棧下溢」 我只想使用pow()函數。如果我使用(我*我*我*我)它將工作。 我正在使用turbo C++ 4.5和錯誤顯示,而使用f7跟蹤。請幫忙!

+2

「a」的最小值是多少? – Bathsheba 2014-08-28 15:34:02

+0

確保「a」按預期設置。 'if(1!= scanf(「%d」,&a))Error();'。 – chux 2014-08-28 15:36:00

+1

你能告訴我們你爲'a'輸入的內容嗎? – doctorlove 2014-08-28 15:41:34

回答

0

你必須做出main()返回一個intint main(void)

http://ideone.com/7HVbGv

在這裏你可以看到你的程序工作。如果將其更改爲void main()並刪除return 0;,則會在主結尾處出現運行時錯誤。

您還應該尋找一個現代編譯器。 Turbo C++ 4.5已有20年曆史。

http://en.wikipedia.org/wiki/Turbo_C%2B%2B甚至維基百科說Turbo C++ was a C++ compiler...,而不是Turbo C++ is a C++ compiler...

+0

我怎麼能把圖像放在這裏評論,..我想插入輸出圖像。 – snk 2014-08-28 16:23:59

+0

@ user2714940你不能。不要這樣做。在你的帖子中發佈錯誤/輸出消息,而不是發佈圖像 – 2014-08-28 16:47:06

+0

謝謝,......以上是正確的!我是新的,並不知道!但我不能投贊成票,因爲我沒有15個聲望,所以我添加了答案。 – snk 2014-08-28 16:49:09

0

謝謝大家的回覆! 它只是改變爲int main()在線編譯器,但在turbo C++中,數學庫有一些問題。

+0

「它只是在在線編譯器中更改爲int main()」,而你的評論「No sir!我再次從這個塊中複製代碼並執行代碼。 「不一致。請詳細說明。 – chux 2014-08-28 17:05:08

0

您是否試過這個 sum + =((int)pow(i,4)); 而不是 sum + = pow(i,4);