循环的嵌套及举例(初学者)

例:

#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);
}

 

posted on 2019-01-15 20:26 巫师笔记 阅读(...) 评论(...) 编辑 收藏

导航

统计

公告