2011-11-20 38 views
-2
#include<stdio.h> 
main() 
{ 
    int i, int a[5]={1,2,48,3,88}; 
    for(i=0;i<4;i++) 
    { 
     if (a[i]<a[i+1]) 
     { 
      printf("%d",a[i]); 
     } 
     else 
     { 
      printf("can't print"); 
     } 
    } 
} 

該程序根本沒有執行。我的目標是打印該號碼,如果當前號碼小於下一個號碼。它應該打印或否則它將打印不能打印。簡單程序不能在c中執行

+0

那麼,有什麼問題呢?編譯器錯誤?運行時錯誤?垃圾輸出? –

+5

該程序根本不編譯。編譯器會告訴你錯誤在哪一行。 – interjay

+4

此(嚴重縮進)代碼不能編譯,而是單獨執行。再看看編譯器的輸出。 – Johnsyweb

回答

0

在每個printf中放置一個終止換行符\n,例如, printf("can't print\n");或致電fflush(NULL)

你的聲明應被分離爲

int i; 
int a[5]={1,2,48,3,88}; 

請適當地縮進您的C代碼(在Linux中,indent實用程序可以幫助)。

不要忘了警告和調試信息(例如,在Linux上gcc -Wall -g myprog.c -o myprog

+3

以及這個'\ n'如何幫助解決當前問題? –

+0

更具可讀性的輸出 –

4

在C的當前版本的編譯程序,你應該爲main指定返回類型和返回類型必須是int。我還建議指定參數列表。

int main(void) 

如果你想爲ia(我建議)單獨聲明,那麼你需要使用一個分號將它們分開,如果你想要一個聲明(我不建議),你需要省略第二個int

int i; int a[5]={1,2,48,3,88}; 

int i, a[5]={1,2,48,3,88}; 

printf字符串應該用\n結束,以確保它們輸出,其中預計:

printf("%d\n",a[i]); 

printf("can't print\n"); 
+0

感謝您的建議, – Joker666

+0

@ Joker666:錯誤不應該在參數列表中,因爲'int main()'是完全有效的,而不是我推薦的 –

+0

我問了一個朋友,發現是因爲編譯器,除此之外,我的程序完全有效,謝謝你的幫助。 – Joker666