循環的嵌套及舉例(初學者)


例:

#include<stdio.h>

void main()
{
    int i,j,k;
    printf("i j k\n");
    for(i=0;i<2;i++)
        for(j=0;j<2;j++)
            for(k=0;k<2;k++);
    printf("%d%d%d\n",i,j,k);

}

問題:輸出以下圖形:

*

**

***

****

*****

******

提示:一共6行,每行的‘*’數都與行數相同。

#include<stdio.h>

void main()
{
    int n,i;
    for(n=1;n<=6;n++)        //打印行;
    {
        printf("\n");
        for(i=1;i<=n;i++)     //打印‘*’;
        {
            putchar('*');
        }
    }

}

 

四種循環的比較:

(1)四種循環都可以用來處理同一個問題,一般可以互相代替。但一般不提倡用goto型循環。

(2)while和do-while循環,只在while后面的括號內指定循環條件,因此為了讓循環能正常結束,循環體中應包括使循環趨於結束的語句(如i++或i=i+1)。

(3)for循環可以在表達式3中包含使循環趨於結束的操作,甚至可以將循環體中的操作全部放在表達式3中。因此for語句功能最強,也最常用。

(4)用while和do-while循環時,循環變量初始化的操作應在while和do-while語句之前完成,而for語句可以在表達式1中實現循環變量的初始化。

(5)while循環、do-while循環和for循環,可以用break語句跳出循環,用continue語句結束本次循環。而對goto語句和if語句構成的循環,不能用break語句和continue語句進行控制。

題目:有1、2、3、4四個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?

程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。

#include<stdio.h>

void main()
{
    int i,j,k,n;
    n=0;
    for(i=1;i<5;i++)
    {
        for(k=1;k<5;k++)
        {
            for(j=1;j<5;j++)
            {
                if(i!=k&&j!=i&&j!=k)
                    n++;
                if(i!=k&&j!=i&&j!=k)
                    printf("%d%d%d\n",i,j,k);
            }
        }
    }
    printf("%d",n);
}

 


免責聲明!

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



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