2010-11-03 58 views
1
#include<stdio.h> 
void compute(int); 
int cube(int); 
int main() 
{ 
     compute(3); 
} 
void compute(int in) 
{ 
     int res=0,i; 
     for(i=1;i<=in;i++); 
     { 
       res=cube(i); 
       printf("%d %d",res,i); 
     } 
} 
int cube(int n) 
{ 
     return (n*n*n); 
} 


輸出:64 4瞭解C-程序的輸出

它是如何發生的呢?

+0

作業標籤需要? – Crisfole 2010-11-03 17:45:22

回答

15

分號在您的for行的末尾。

+1

對。 for循環後的代碼塊只執行一次。 – John 2010-11-03 17:25:48

6

由於for行的分號,語句會增加i,直到它不是< = 3,即4。然後運行下面的代碼。

0

由於您使用的是C99,您可能想要習慣於在for語句本身內部聲明控制for循環的變量。

for (int i=1; i<=in; i++); 
    { 
     /* i is not in scope here */ 
    } 

而且,現在我已經寫了,寫了一個循環的慣用方法是在0和測試開始與<

for (int i=0; i<in; i++); 
    { 
     /* i is not in scope here */ 
    }