問C中for迴圈區別 for i 0 in ifor j i 1 jn j和for i 0 in ifor j i 1 jn j

2021-04-19 10:28:25 字數 4480 閱讀 9326

1樓:不屑寵兒

如果來第乙個for後面只有一自

個句子就沒區別,如果bai不是就有了

for(int i=0;i<3;i++)

for(int j;j<3;j++)

num++;

num2++; 不加{du

}zhinum2只加一次,

加了的話迴圈

dao3次。

2樓:匿名使用者

第乙個bai:第二個for迴圈是第乙個for迴圈du的zhi子迴圈,在第二個for迴圈後面還能在dao寫乙個語句回歸屬於第二個for迴圈答之後,則其他的語句則不屬於任何乙個for迴圈

第二個:整個大括號都是第乙個for迴圈的語句,即第乙個for每進行加一操作都進行一次大括號裡面的內容。第二個for迴圈則為第乙個for迴圈裡面語句的一部分

3樓:匿名使用者

沒區別,第二個中的 只是強調for迴圈後面的為乙個整體,使得程式的可讀性增強,對機器來說,是一樣的

4樓:

第乙個:後乙個for是前乙個for唯一的子迴圈;

第二個:後乙個for並不是前乙個for唯一的子迴圈,省略號的地方還可以再加第二個子for迴圈,與之並行。

求c語言中for(i=0;i

5樓:

兩個迴圈的次數是一樣多的,都是n-(j+1)次,但在迴圈過程中i的值不一樣

前者是0,1,2 …… n-(j+1)-1後者是j+1,j+2,j+3……n-1

for(i=1;i<=n;++i) for(j=1;j<=n;j++) {c[i][j]=0; for(k=1;k<=n;++k) c[i][j]+=a[i][k]*b[k][j];}

6樓:匿名使用者

先整理一下:

for(i=1;i<=n;++i) // 重複n次,o(n)

for(j=1;j<=n;j++) // 又重複n次, o(n)

// 該括號部分語句工作量為版 o(1+n*1)=o(n)// 總的工作量(複雜度)為o(n * n * n)=o(n³),簡單權的說,並列語句時,工作量相加,涉及到語句的迴圈時,工作量乘迴圈次數,所以一般只要看迴圈多少層就可以了。這裡的第三層語句中工作量實際上不都被忽略了嗎?

氣泡排序中,兩重迴圈是 for (i=0;i

7樓:喧世幽人

for(i = 0; i < n -1; i++)          // 比較copy輪數

for(j = n - 1; j > i; j--)     // 元素下標

if(a[j] < a[j -1])         // 比較大小

swap(a[j], a[j -1]);   // 交換位置

從最後乙個元素開始和前乙個元素比較(注意j的取值),如果比前乙個小,則交換位置。每輪比較都保證前面的元素是有序的,即把小的元素冒泡到最前面,只需要n-1輪(i的取值)即可完成。

8樓:匿名使用者

怎麼不對

你對幾個元素排序的

c語言for(j=1;j<=9;j++) for(i=0;i<=9-j;i++) 這兩句到底咋個迴圈?

9樓:匿名使用者

前面兩個迴圈不解釋,如果前面你都不明白那下面的你不用看了。回去先看看書好了。

for(j=1;j<=9;j++)

for(i=0;i<=9-j;i++)

第一次執行外層迴圈for(j=1;j<=9;j++),j為1,小於等於9,執行迴圈體。然後進入內層迴圈for(i=0;i<=9-j;i++),此時j為1,所以內層迴圈的條件判斷為i小於等於9-1,按照這個條件執行迴圈。當i==9的時候退出內層迴圈,執行外層迴圈第三個表示式,執行後判斷迴圈條件仍然滿足,繼續執行。

此時j為2,內層迴圈j的條件為j<=9-2。按照這個順序完成迴圈的執行。

迴圈執行次數為

外層迴圈執行9次

內層迴圈在外層迴圈第一次執行的時候執行9次,第二次8次 。第三次7 。。。。。。

10樓:樂跑小子

這是乙個雙重迴圈

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

其中for(j=0;j<9;j++)是for(i=0;i<9;i++)的內嵌迴圈

i從0到9,i取乙個值,j就從0取到9,共迴圈9次

11樓:匿名使用者

for(j=1;j<=9;j++)

for(i=0;i<=9-j;i++);前面迴圈9次,每迴圈一次後面的迴圈少一次。 表述的有點不明,你慢慢理解。

想問一下c中 for(i=0;i<5;i++) for(j=0;j<5;j++) 是怎麼迴圈的?

12樓:匿名使用者

我用1代表第乙個for迴圈,2代表第二個for迴圈。

第一次執行1->執行2,直到2不滿足j<5為止->第二次執行1->重頭開始執行2,直到2不滿足j<5為止->第三次執行1->........

也就是說1每執行一次,這裡2要執行5次,直到1不滿足i<5,這兩個迴圈都執行完畢。

13樓:匿名使用者

第乙個for,i=0時,第二個for的j=0,1,2,3,4,迴圈5次。

i=1時,第二個迴圈5次。

i=2。。。。

i=3.。。。。

i=4.。。。。

共迴圈25次

14樓:匿名使用者

雙重迴圈

比如可以輸出乙個5行5列的矩陣

把基礎打好吧

15樓:沉默de獨白

#include

int main()

i=0,j=1;i=0,j=2,i=0,j=3;i=0,j=4;i=1,j=0;i=1,j=2......i=4,j=4

求時間複雜度 x=0; for(i=1;i

16樓:2走著走著就

要求時間複雜度,可以先考慮各語句的頻度

語句1:x=0;

語句2:for(i=1;i

語句3:for(j=1;j<=n-i;j++)語句4:x++;

語句1執行1次;

語句2 中迴圈控制變數i 要增加到n,測試 i=n成立才會終止,故頻度是n+1。但它的迴圈體卻只能執行n次;

語句3作為語句2迴圈體內的語句,應該執行n次,但語句3本身要執行n+1次,所以頻度為n*(n+1);

語句4作為語句3迴圈體內的語句,所以要執行 n的平方 次;故其頻度為 n的平方 次。

故可以算出演算法的執行時間t(n),即所有語句的頻度之和。

時間複雜度 t(n)=o(n的平方)

17樓:匿名使用者

時間複雜度

1.時間頻度

乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。

乙個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)。

2.計算方法

1. 一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f(n),因此,演算法的時間複雜度記做:t(n)=o(f(n))   分析:

隨著模組n的增大,演算法執行的時間的增長率和f(n)的增長率成正比,所以f(n)越小,演算法的時間複雜度越低,演算法的效率越高。   2. 在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出t(n)的同數量級(它的同數量級有以下:

1,log2n ,n ,nlog2n ,n的平方,n的三次方,2的n次方,n!),找出後,f(n)=該數量級,若t(n)/f(n)求極限可得到一常數c,則時間複雜度t(n)=o(f(n))   例:演算法:

  for(i=1;i<=n;++i)      }   則有 t(n)= n的平方+n的三次方,根據上面括號裡的同數量級,我們可以確定 n的三次方 為t(n)的同數量級   則有f(n)= n的三次方,然後根據t(n)/f(n)求極限可得到常數c   則該演算法的 時間複雜度:t(n)=o(n的三次方)

3.分類

按數量級遞增排列,常見的時間複雜度有:   常數階o(1),對數階o(log2n),線性階o(n),   線性對數階o(nlog2n),平方階o(n2),立方階o(n3),...,   k次方階o(nk), 指數階o(2n) 。

隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低

c語言for中的break i 是迴圈後執行,那break

這個會輸出10 break語句跳出迴圈最後i 10,不會再執行i 了 輸出10 當i 10時,程式就跳出for迴圈了。故,i是不會 1的。break跳出的是if語句,還是for迴圈?break 在一些計算機程式語言中是保留字,其作用大多情況下是終止所在層的迴圈。1 break語句對if else的條...

請問如何在C的標籤中顯示for迴圈的所有結果謝謝

label1.text i.tostring 乙個label控制項只能獲得最終的賦值,也就是30你要在乙個控制項上顯示所有的值就得用 int i string str string.empty for i 10 i 30 i 5 去掉最後的那個多餘的,號 str str.substring 0,st...

C 中for迴圈內定義變數的使用範圍,及其他情況下定義變數的使用範圍

c 的每個變數都是有塊級作用域。所謂的塊級作用域,就是變數在定義它的 專 裡面都是起作用的,舉屬個例子 if int a 4 2 第一層 變數a在第一層,第二次,第三層裡面都有效。變數b在第二次,第三層裡面都有效。變數c,d在第三層裡面都有效。這是區域性變數,只能在迴圈內使用,不是全域性變數,全域性...