C語言兩重迴圈用同一變數會出現什麼問題

2021-03-04 08:48:31 字數 4704 閱讀 6310

1樓:聽不清啊

c語言兩重迴圈用同一迴圈控制變數時,最基本的,會達不到期望的效果(因為在中途「變道」了)。壞一點的可能會陷入「死迴圈」。

當然,如果不是迴圈控制變數而是某種計數或別的設計好的用途,那還是可以的。

2樓:匿名使用者

給你乙個實驗看看

#include

int main()

if (count>50) break;

}return 1;

}一同乙個變數控制迴圈,如果不用count來控制跳出的話,這將是乙個死迴圈。一直重複列印

i=0 i=1 i=2 i=3 i=4

3樓:匿名使用者

是啊!而且非常重要它在筆試中佔30%!!!

這是我找到的一些資料:第一章 資料結構與演算法

4樓:匿名使用者

你試試就知道了唄。。。

5樓:匿名使用者

不看**的話不能決定到底會出什麼問題。

c語言如何用迴圈定義多個變數

6樓:虞明明

用指標來動態分配記憶體,比如

int size=8;

int *nums;

nums=(int *)malloc(sizeof(int)*size);

然後你就可以把nums當成長度為8的陣列使用了,其操作方式和int nums[8];一模一樣

7樓:天雲一號

在c語言中,不能通過迴圈語句來定義多個變數。

因為c語言規定,變數的定義必須放在執行語句的前面,而迴圈語句就是一條執行語句,所以不能在迴圈體中定義變數。

舉例如下:

int i;

for(i=0; i<4; i++)

8樓:が附庸風雅

#define id(x) int i##x

for(int i = 0;i這樣有個缺點 那就是每次你只能用乙個數 並且在外面不可見

你可以用靜態宣告 在最後乙個數宣告後一起使用 嘿嘿

9樓:

#include

#include

void main()

10樓:匿名使用者

變數名動態變化,這個真沒有。

c語言 for的多重迴圈是怎麼一回事啊 能給小弟詳細講解以下嗎?

11樓:匿名使用者

for(表示式1;表示式2;表達3)

語句:表示式1 通常用來給迴圈變數賦初值,一般是賦值表示式。也允許在for語句外給迴圈變數賦初值,此時可以省略該表示式。

表示式2 通常是迴圈條件,一般為關係表示式或邏輯表示式。

表示式3 通常可用來修改迴圈變數的值,一般是賦值語句。

這三個表示式都可以是逗號表示式, 即每個表示式都可由多個表示式組成。三個表示式都是任選項,都可以省略。

一般形式中的「語句」即為迴圈體語句。for語句的語義是:

1.首先計算表示式1的值。

2.再計算表示式2的值,若值為真(非0)則執行迴圈體一次, 否則跳出迴圈。

3.然後再計算表示式3的值,轉回第2步重複執行。在整個for迴圈過程中,表示式1只計算一次,表示式2和表示式,3則可能計算多次。

迴圈體可能多次執行,也可能一次都不執行。for 語句的執行過程如圖所示。

void main()

用for語句計算s=1+2+3+...+99+100

int n,s=0;

for(n=1;n<=100;n++)

s=s+n;

printf("s=%d\n",s);

本例for語句中的表示式3為n++,實際上也是一種賦值語句,相當於n=n+1,以改變迴圈變數的值。

void main()

用for語句修改例題。從0開始,輸出n個連續的偶數。

int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;n>0;a++,n--)

printf("%d ",a*2);

本例的for語句中,表示式1已省去,迴圈變數的初值在for語句之前由scanf語句取得,表示式3是乙個逗號表示式,由a++,n-- 兩個表示式組成。每迴圈一次a自增1,n自減1。a的變化使輸出的偶數遞增,n的變化控制循次數。

在使用for語句中要注意以下幾點

1.for語句中的各表示式都可省略,但分號間隔符不能少。如:for(;表示式;表示式)省去了表示式1。for(表示式;;表示式)省去了表示式2。

for(表示式;表示式;)省去了表示式3。for(;;)省去了全部表示式。

2.在迴圈變數已賦初值時,可省去表示式1,如例3.27即屬於這種情形。如省去表示式2或表示式3則將造成無限迴圈, 這時應在迴圈體內設法結束迴圈。例題即屬於此情況。

void main()

} int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;n>0;)

本例中省略了表示式1和表示式3,由迴圈體內的n--語句進行迴圈變數n的遞減,以控制迴圈次數。

void main()

}int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;;)

本例中for語句的表示式全部省去。由迴圈體中的語句實現迴圈變數的遞減和迴圈條件的判斷。當n值為0時,由break語句中止迴圈,轉去執行for以後的程式。

在此情況下,for語句已等效於while( 1)語句。如在迴圈體中沒有相應的控制手段,則造成死迴圈。

3.迴圈體可以是空語句。

#include"stdio.h"

void main()

本例中,省去了for語句的表示式1,表示式3也不是用來修改迴圈變數,而是用作輸入字元的計數。這樣, 就把本應在迴圈體中完成的計數放在表示式中完成了。因此迴圈體是空語句。

應注意的是,空語句後的分號不可少,如缺少此分號,則把後面的printf 語句當成迴圈體來執行。反過來說,如迴圈體不為空語句時, 決不能在表示式的括號後加分號, 這樣又會認為迴圈體是空語句而不能反覆執行。這些都是程式設計中常見的錯誤,要十分注意。

4.for語句也可與while,do-while語句相互巢狀,構成多重迴圈。以下形成都合法的巢狀。

(1)for()…}

(2)do

…}while();

(3)while()…}

(4)for()

}void main()

printf("\n");}}

12樓:誒戈兒

巢狀嘛,從最外面的迴圈開始第一次迴圈,遇到下級for迴圈的時候,迴圈這級迴圈一次,如果該迴圈內不再有迴圈for,那麼就要把這級迴圈的次數全不迴圈完畢後跳到外迴圈中進行第二次迴圈,再執行內部for迴圈,依次迴圈完畢為止

c語言for的多重迴圈

13樓:匿名使用者

舉例子有點難,要不直接講一下。

首先,定義迴圈,將i的起始值設為1,迴圈條件為i<10(也就是i的尾值為9),然後在內部定義巢狀迴圈,將j的起始值設為1,迴圈條件為j<=i(這是全迴圈裡最難理解的,這個巢狀迴圈尾值是i當時的值,比如當時i的值為8,那麼j將會從1執行到8),所以執行順序可以這樣理解:1,確定i值;2,在裡面重複執行巢狀迴圈,確定j值,重複執行直到j大於i(一大於就不執行了);3.i值加1,繼續執行迴圈。

這個程式應該是用來列印乘法口訣表的,可以了解一下。

14樓:餜敟閱滃皬櫬

for(表示式1;表示式2;表達3)

語句:表示式1 通常用來給迴圈變數賦初值,一般是賦值表示式。也允許在for語句外給迴圈變數賦初值,此時可以省略該表示式。

表示式2 通常是迴圈條件,一般為關係表示式或邏輯表示式。

表示式3 通常可用來修改迴圈變數的值,一般是賦值語句。

這三個表示式都可以是逗號表示式, 即每個表示式都可由多個表示式組成。三個表示式都是任選項,都可以省略。

一般形式中的「語句」即為迴圈體語句。for語句的語義是:

2.再計算表示式2的值,若值為真(非0)則執行迴圈體一次, 否則跳出迴圈。

3.然後再計算表示式3的值,轉回第2步重複執行。在整個for迴圈過程中,表示式1只計算一次,表示式2和表示式,3則可能計算多次。

迴圈體可能多次執行,也可能一次都不執行。for 語句的執行過程如圖所示。

void main()

用for語句計算s=1+2+3+...+99+100

int n,s=0;

for(n=1;n<=100;n++)

s=s+n;

printf("s=%d\n",s);

本例for語句中的表示式3為n++,實際上也是一種賦值語句,相當於n=n+1,以改變迴圈變數的值。

void main()

用for語句修改例題。從0開始,輸出n個連續的偶數。

int a=0,n;

printf("\n input n: ");

scanf("%d",&n);

for(;n>0;a++,n--)

printf("%d ",a*2);

15樓:熟悉的陌生人

這個就是在列印乘法口訣表

c語言用迴圈語句實現重複迴圈C語言用for如何實現多次迴圈的輸入輸出

不能單純地使用if,可以配合函式或者goto跳轉來實現。比如int start 1 int end 100 int s 0 以上是通用定義,我就不寫多次了 第一種方法,用goto begin if start end 第一種方法結束 第二種方法,函式遞迴 int function int start...

c語言for迴圈空表示式,C語言for第乙個表示式留空是什麼意思?

d語句是你迴圈執行的語句,如果你不想讓它執行的話可以 for a語句 b語句 c語句 就不會提示錯誤了 可以明白了for語句的構成和作用,就能更好的靈活運用它了。1 for語句的一般格式 for 變數賦初值 迴圈繼續條件 迴圈變數增值 2 for語句的執行過程 執行過程如圖5 1所示。1 求解 變數...

c語言中結束一次迴圈的語句是,C語言中結束一次迴圈的語句是

break 直接結束 continue 結束當前迴圈 return 如果迴圈是在乙個北調函式中可以加入 return 讓它回到主調函式中自然也就結束了迴圈 continue 後面語句不執行,跳到迴圈開始的地方執行下一次迴圈 break 直接跳出迴圈 continue 結束本次迴圈,若不滿足迴圈結束條...