1樓:匿名使用者
為什麼?我想為你為什麼不知道原因,這是很簡單的邏輯推算題,一看就知道你的呼叫的函式返回值就是你的輸入值,我猜你是想要的結果是1,1*2,1*2*3,1*2*3*4,1*2*3*4*5是吧?呼叫函式的形參只是在你用的時候形成,當呼叫完畢就會釋放,j的運算結果不會保留在記憶體當中,因此你想要那種結果的話,辦法可以好像dingpwen所說那樣把j宣告為靜態變數,關鍵字為static,不過最好是把
for(i=1;i<=5;i++)
printf("%d",f(i));
printf("\n");
改成for(i=1;i<=5;i++)
加上括號,執行結果不會一連串,一行顯示迴圈一次的結果比較好判斷或者不改變呼叫函式,改變主函式
main()
} 同樣可以得到結果
2樓:匿名使用者
for迴圈是i從1到5。迴圈共5次。函式f(int n)裡的j始終為1,n=i所以從1到5。所以最終列印出的結果為1,2,3,4,5。
3樓:
你的疑惑是由j引起的,程式中定義的j為int型,所以說每次呼叫時j的值都賦值=1,即j的值總是為1。
如果把int型改為static型,那麼每次呼叫後j就會儲存上一次的值啦!
4樓:
//加個static
main()
f(int n)
5樓:匿名使用者
你想要什麼結果 我給你改
後面的呼叫函式好像沒用
6樓:匿名使用者
把 j 定義為全域性變數
c語言中for語句是怎麼用的
7樓:肥仙女
c語言中for語句用法:
for是c語言中的一個關鍵字,主要用來控制迴圈語句的執行。
舉例:int i;
for(i=0; i<3; i++)
// i=0是初始化部分;i<3是迴圈判斷條件部分(當滿足此條件時才進入執行for迴圈中的語句);i++是執行完迴圈體語句後的操作
// 上面的for語句就是控制輸出3次helloworld。
擴充套件資料:
for迴圈是程式語言中一種迴圈語句,而迴圈語句由迴圈體及迴圈的判定條件兩部分組成,其表示式為:for(單次表示式;條件表示式;末尾迴圈體)。
1.語句最簡形式為:
for( ; ; )
2.一般形式為:
for(單次表示式;條件表示式;末尾迴圈體)
其中,表示式皆可以省略,但分號不可省略,因為「;」可以代表一個空語句,省略了之後語句減少,即為語句格式發生變化,則編譯器不能識別而無法進行編譯。 [1]
for迴圈小括號裡第一個「;」號前為一個為不參與迴圈的單次表示式,其可作為某一變數的初始化賦值語句, 用來給迴圈控制變數賦初值; 也可用來計算其它與for迴圈無關但先於迴圈部分處理的一個表示式。
「;」號之間的條件表示式是一個關係表示式,其為迴圈的正式開端,當條件表示式成立時執行中間迴圈體。
執行的中間迴圈體可以為一個語句,也可以為多個語句,當中間迴圈體只有一個語句時,其大括號{}可以省略,執行完中間迴圈體後接著執行末尾迴圈體。
執行末尾迴圈體後將再次進行條件判斷,若條件還成立,則繼續重複上述迴圈,當條件不成立時則跳出當下for迴圈。
8樓:浩雄王
1、for是c語言中的一個關鍵字,主要用來控制迴圈語句的執行。
2、下面舉例說明for語句的使用方法:
int i;
for(i=0; i<3; i++)
// i=0是初始化部分;i<3是迴圈判斷條件部分(當滿足此條件時才進入執行for迴圈中的語句);i++是執行完迴圈體語句後的操作
// 上面的for語句就是控制輸出3次helloworld。
for迴圈是程式語言中一種開界的迴圈語句,而迴圈語句由迴圈體及迴圈的終止條件兩部分組成,for迴圈其在各種程式語言中的實現與表達有所出入,但基本為以c語言和pascal語言代表的兩種形式。
9樓:life蝸牛
for(初始變數;迴圈條件;修改變數)
10樓:匿名使用者
1:for迴圈
for語句的格式為:
for (初始化語句; 條件語句; 控制語句)
for 語句的執行順序是:首先執行「初始化語句」;然後測試「條件語句」;若條件成立,則執行語句1到語句n;然後執行「控制」語句;接著再測試條件語句是否成立,如果成立則重複執行以上過程,直至條件不成立時才結束for迴圈。如:
for(i=0;i<10;i++)......;
int i,a=new int[10];
for (i=0,i<10;i++) a[i]= 0;
這段**把整型陣列a中的所有元素都賦成0。
你可以在for迴圈的頭部說明你的變數,而且最後一個表示式可以省略,不過要確定在語句中對變數的值有所改變,如:
for(int i=0;i<=10;) i+=i;
for迴圈中,「初始化語句」、「條件語句」和「控制語句」都可以省略,但是其間的分號不能省略。例如:
int i =0 ;
for (; ; ;)
for迴圈中省略「條件語句」時,在for語句{}中必須包換轉句語句控制程式在某個條件滿足時跳出for迴圈,否則將形成死迴圈
2:while迴圈
while迴圈和for迴圈類似,其格式為:
while (條件語句)
執行while時,先測試「條件語句」,如果條件成立,則執行語句1到語句n,直至條件不成立時調處迴圈。
int i=0 ;
while (i<10)
3:do ... while 迴圈
do ... while 迴圈語句的格式為:
dowhile (條件語句) ;
do ...while 語句的功能是首先執行語句1到語句n,然後進行條件測試,如果條件成立,則繼續執行語句1到語句n,否這跳出迴圈。如:
boolean test=false;
dowhile(test);
這種控制並不是很常用,但有時卻非常重要,使用時注意結尾處while語句後的分號。
11樓:匿名使用者
for 語句是一種應用廣泛的迴圈語句,一般格式為for(表示式1;表示式2;表示式3)迴圈語句;
表示式1作用為對一般變數初始化,完成初始化後計算表示式2的值,如是非零值則執行迴圈語句,即表示式2為條件語句,表示式3為執行完迴圈語句後才求解的式子,多為改變變數的值.
例如:迴圈執行某段相同的**
for(int i = 0; i < 5; i++)比如這段**是把hello迴圈輸出5次。
int i = 0是初始條件
i < 5是條件判斷,如果滿足此條件就執行**i++是條件的變化步長
12樓:匿名使用者
做迴圈用的
例如你要迴圈某個事件 5次
int i;
for(i=0;i<5;i++);
13樓:
c語言程式設計知識第十二節-c語言語句之迴圈語句-for語句
14樓:謝搶來
這樣的問題也問,那書是用來做什麼的?暈
用c語言for迴圈?
15樓:小黑哎啊
#include
int main()
char ch;
for(int i=1;i<=4;i++)for(int j=1;j<=4-i;j++)printf(" ");
if(i==1)
ch='a';
if(i==2)
ch='b';
if(i==3)
ch='c';
if(i==4)
ch='d';
for(int k=1;k<=2*i-1;k++)printf("%c",ch);
printf("\n");
for(int i=1;i<=3;i++)for(int j=1;j<=i;j++)printf(" ");
if(i==1)
ch='c';
if(i==2)
ch='b';
if(i==3)
ch='a';
for(int k=5;k>=2*i-1;k--)printf("%c",ch);
printf("\n");
如何在c語言中跳出for迴圈
16樓:天雲一號
跳出for迴圈主要有以下2中方式:
1、用break語句。如:
int i;
for(i=0; i<10; i++)
printf("%d", i);
2、用return語句(一般用在函式體屬中,作為函式的返回值跳出該函式,也即跳出了函式體中的for迴圈)
int fun(int a)}
17樓:匿名使用者
就用break啊!在for迴圈裡面加個判斷,如果傳入的是-1就執行break
18樓:4向日葵
將while改成if就好了 ,那個break跳出的是while,改用if就好了
19樓:
應該用if( num[i] == -1) then break;
照你的語句,如果輸入的不是-1,就陷入while死迴圈了。
20樓:嘻嘻酸奶
for(i=0;i<20;i++)
scanf下面按順序執行,可以不用while,只用for一個迴圈
21樓:林藝輝
應該如下
for(i=0;i<20;i++)
c語言for迴圈輸出問題?
22樓:匿名使用者
#include
#include
typedef int elemtype;
typedef int status;
typedef struct lnode
lnode,*linklist;
//如果i小於1或者大於表長加1,則返回error
if (!p || j>i - 1)
s = (linklist)malloc(sizeof(lnode));
s->data = e;
s->next = p->next;
p->next = s;
return 1;
if (!p->next || j>i - 1)
linklist q;
q = p->next;
p->next = q->next;
e = q->data;
free(q);
return 1;
} int main()
printf("\n");
int z;
int x;
printf("請輸入要插入位置:");
scanf("%d", &z);
printf("請輸入要插入元素:");
scanf("%d", &x);
if(linkinsert_l(w, z, x))
else
printf("插入失敗\n");
y = w;
for (int j = 0; j < n; j++)
printf("\n");
int r;
int t;
printf("請輸入要刪除位置:");
scanf("%d", &r);
if(linkdelete_l(w, r, t))
else
printf("刪除失敗\n");
y = w;
for (int h = 0; h < n; h++)
printf("\n");
return 0;}
c語言for迴圈執行步驟,C語言 for迴圈執行步驟
簡單的for迴圈程式如下 for int i 0 i 20 i 執行步驟是 1 i 0 初始化初值 2 進行條件專判斷i是否 20,如果條屬件為真,則繼續執行 3 執行迴圈體的 4 i 變數i自增一次 5 回到第2步,一直迴圈,直到第2步條件為假時,退出迴圈,結束。開啟嗶哩嗶哩,搜尋 詳解c語言之f...
c語言for迴圈問題,c語言 for迴圈問題
你的for迴圈用錯了,for的三個引數第一個是賦初值,第二個是迴圈條件,第三個是增值。你的迴圈條件沒有給,並且就算寫對位子你的條件好像也錯了,按你的意識是大於10就退出,但是你的迴圈條件是 這是 或 也就是滿足一個條件就進行迴圈,當你輸入10的時候大於了1,那麼迴圈就可以進行。所以你應該是用 用 且...
c語言for迴圈輸出問題,C語言 for迴圈輸出陣列的問題
include include typedef int elemtype typedef int status typedef struct lnode lnode,linklist 如果i小於1或者大於表長加1,則返回error if p j i 1 s linklist malloc sizeo...