C++中一個常用的句型(兩個for(;;)語句連用的重要性)


    在一些簡單的C++編程中,經常會用到兩個for(;;)語句連用的情況,這是一個常用句型,因此感覺也非常重要。下面舉兩個例子說明一下:

例1.用兩個for(;;)語句來進行數組元素大小的排序

#include"stdafx.h"

#include<iostream>

using namespace std;

int main()

{

  int i,j,t=0;

   int a[10]={0};

//用for循環連續輸入10個數存放在數組中

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

{

cin>>a[i];

}

//兩個for循環連用,對輸入的數值按從小到大的順序排序

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

    for(j=i+1;j<10;j++)

{   

if(a[i]>a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

//用for循環對排序好的數組值按從小到大的順序輸出

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

{

cout<<a[i]<<endl;

}

return 0;

}

例2.一條長廊里依次裝有n(1 ≤ n ≤ 65535)盞電燈,從頭到尾編號1、2、3、…n-1、n。每盞電燈由一個拉線開關控制。開始,電燈全部關着。 有n個學生從長廊穿過。第一個學生把號碼凡是1的倍數的電燈的開關拉一下;接着第二個學生把號碼凡是2的倍數的電燈的開關拉一下;接着第三個學生把號碼凡是3的倍數的電燈的開關拉一下;如此繼續下去,最后第n個學生把號碼凡是n的倍數的電燈的開關拉一下。n個學生按此規定走完后,長廊里電燈有幾盞亮着。 注:電燈數和學生數一致。

程序:

#include "stdafx.h"

#include<iostream>

#define max 65535

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int n, i, j,cnt=0, a[max] = { 0 };

cin >> n;

if ((n < 1) || (n>max))

cout << "輸入錯誤!" << endl;

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

{

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

{

if ((j%i) == 0)

{

a[j] += 1;

a[j] %= 2;

}

}

}

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

{

if (a[i]==1)

cnt++;

}

cout << "亮燈數為" << cnt << "盞" << endl;

return 0;

}

 

一條長廊里依次裝有

n(1 

 

 n 

 65535)

 

盞電燈,從頭到尾編號

1

2

 

3

 

…n

 

-1

n

。每

盞電燈由一個拉線開關控制。開始,電燈全部關着。

 

n

個學生從長廊穿過。第一個學生把號碼凡是

1

的倍數的電燈的開關拉一下;接着第二

個學生把號碼凡是

2

的倍數的電燈的開關拉一下;接着第三個學生把號碼凡是

3

的倍數的

電燈的開關拉一下;如此繼續下去,最后第

n

個學生把號碼凡是

n

的倍數的電燈的開關拉

一下。

n

個學生按此規定走完后,長廊里電燈有幾盞亮着。

 

注:電燈數和學生數一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM