C语言 第六章 多重循环

一、概要

在c语言中,if,switch,for,while,do-while可以相互间多次嵌套。

if(){

  for()

  {

    for()

    {

    }

  }

}

 

while()

{

  for(){

  }

  for(){

  }

}

break,continue只跳出当前循环,不会影响外重循环,不会因为内重循环跳出整个循环体,只影响与自己最近的一个循环。

for()

{

  for()

  {

      break;

  }

}

二、二重循环

#include "stdio.h"
void main()
{
    int i,j;
    for(i=1;i<=2;i++)
    {
        printf("---------------\n");
        for(j=1;j<=3;j++)
        {
            printf("****************\n");
        }
        printf("---------------\n\n");
    }
}

#include "stdio.h"
void main()
{
    int i,j;
    for(i=1;i<=5;i++)
    {
        for(j=1;j<=5;j++)
        {
            printf("*");
        }
        printf("\n");
    }
}

*

**

***

****

*****

99乘法表

#include "stdio.h"
void main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
        {
          printf("%dx%d=%d  ",j,i,j*i);
        }
        printf("\n");
    }
}

2.1、一重循环平行嵌套多重循环

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i,j,k;
    for(i=1;i<=5;i++)
    {
        for(j=1;j<=5;j++)
        {
            printf("*");
        }

        for(j=1;j<=5;j++)
        {
            printf("@");
        }

        printf("\n");
    }
}

等腰三角形

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i,j,k;
    for(i=1;i<=5;i++)
    {
        for(k=1;k<=5-i;k++)
        {
            printf(" ");
        }

        for(j=1;j<=2*i-1;j++)
        {
            printf("*");
        }

        printf("\n");
    }
}
/*
1 1 4
2 3 3
3 5 2
4 7 1
5 9 0
*/

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i,j,k;
    for(i=1;i<=5;i++)
    {
        for(k=1;k<=i-1;k++)
        {
            printf(" ");
        }

        for(j=1;j<=11-2*i;j++)
        {
            printf("*");
        }

        printf("\n");
    }
}
/*
1 1 4 0 9  11-2*i
2 3 3 1 7  11-4
3 5 2 2 5  11-6
4 7 1 3 3  11-8
5 9 0 4 1  11-10

*********
 *******
  *****
   ***
    *
*/

三、三重循环

百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,

用100文钱买一百只鸡,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

公鸡 x 0-100/5

母鸡 y 0-100/3

小鸡 z 0-100*3

5*x+3*y+z/3==100&&z%3==0

x+y+z==100

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int x,y,z;
    for(x=0;x<=100/5;x++)
        for(y=0;y<=100/3;y++)
            for(z=0;z<=100*3;z++)
            {
                if((x*5+y*3+z/3==100)&&(z%3==0)&&(x+y+z==100))
                {
                    printf("x=%d y=%d z=%d\n",x,y,z);
                }
            }
}

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    //0-9
    //XYZ
    int x,y,z;
    for(x=0;x<=3;x++)
    {
        for(y=0;y<=3;y++)
        {
            for(z=0;z<=3;z++)
            {
                printf("\n%d%d%d",x,y,z);
            }
        }
        printf("\n");
    }
}

四、菱形

/* Note:Your choice is C IDE */
#include "stdio.h"
#include <math.h>
void main()
{
    int i=1,j,k,r=5;  //r表示行数
    for(i=-1*r;i<=r;i++){
       for(k=1;k<=abs(i);k++)
       {
           printf(" ");
       }
       for(j=1;j<=(2*r+1)-2*abs(i);j++)
       {
           printf("*");
       }
       printf("\n");
    }
}
/*
   -4 -3 -2 -1 0 1 2 3 4
*/

五、菱形与函数

/* Note:Your choice is C IDE */
#include "stdio.h"
#include <math.h>

//定义一个输出函数,用于重复向屏幕输出信息
//c表示参数,要输入的字符
//n表示重复次数
void out(char c,int n)
{
    int i;
    for(i=1;i<=n;i++)
    {
        printf("%c",c);
    }
}

void main()
{
    int i=1,j,k,r=10;
    for(i=-1*r;i<=r;i++){
       out(' ',abs(i));
       out('*',(2*r+1)-2*abs(i));
       printf("\n");
    }
}

/*
   -4 -3 -2 -1 0 1 2 3 4
*/

六、空心菱形

#include "stdio.h"
#include <math.h>
void main()
{
    int i=1,j,k,r=8;  //r表示行数
    for(i=-1*r;i<=r;i++){  //控制行数
       for(k=1;k<=abs(i);k++)  //控制空格
       {
           printf(" ");
       }
       for(j=1;j<=(2*r+1)-2*abs(i);j++) //控制星号与中间的空格
       {
              //如果是第一列或最后一列
              if(j==1||j==((2*r+1)-2*abs(i)))
              {
                  printf("*");
              }else{
                printf(" ");
              }
       }
       printf("\n");
    }
}

 

时间: 2024-10-26 23:40:46

C语言 第六章 多重循环的相关文章

C语言 第六章 多重循环练习

一.循环输入 #include "stdio.h" void main() { char c; do { printf("我告诉你1+1=2\n"); printf("你相信吗?(y/n)"); c=getchar(); fflush(stdin); }while(c=='n'); } 二.输入行与列显示矩形 #include "stdio.h" void main() { int row,col,i,j; char c; d

c语言-C程序多重循环的条件判断问题的咨询

问题描述 C程序多重循环的条件判断问题的咨询 多重循环怎么学?多重循环的条件判断是根据什么语句来实现的?如何学好C语言的多重循环? 解决方案 http://ask.csdn.net/questions/215403 解决方案二: 额...这个不就两个for循环套着嘛 你要认真看教材,在开始学的情况下直接看源程序还是不大合适的 解决方案三: 多重循环没必要学,需要学的是为什么程序设计里有时会存在多重循环,自己应该在什么条件下使用循环和循环嵌套. 解决方案四: 可以用for()循环嵌套 解决方案五:

&amp;gt;第六章 控制语句(rainbow 翻译)(来自重粒子空间)

控制|语句 <<展现C#>>第六章 控制语句(rainbow 翻译)  出处:http://www.informit.com/matter/ser0000002 正文:                                  第六章   控制语句     有一种语句,你在每种编程语言控制流程语句中都可以找到.在这一章中,我介绍了C#的控制语句,它们分为两个主要部分:.选择语句.循环语句如果你是C或C++程序员,很多信息会让你感到似曾相似:但是,你必须知道它们还存在着一些差

《.net编程先锋C#》第六章 控制语句(转)

编程|控制|语句 第六章 控制语句 有一种语句,你在每种编程语言控制流程语句中都可以找到.在这一章中,我介绍了C#的控制语句,它们分为两个主要部分:.选择语句.循环语句如果你是C或C++程序员,很多信息会让你感到似曾相似:但是,你必须知道它们还存在着一些差别. 6.1 选择语句当运用选择语句时,你定义了一个控制语句,它的值控制了哪个语句被执行.在C#中用到两个选择语句:.if 语句.switch 语句 6.1.1 if 语句最先且最常用到的语句是 if 语句.内含语句是否被执行取决于布尔表达式:

Android群英传笔记——第六章:Android绘图机制与处理技巧

Android群英传笔记--第六章:Android绘图机制与处理技巧 一直在情调,时间都是可以自己调节的,不然世界上哪有这么多牛X的人 今天就开始读第六章了,算日子也刚好一个月了,一个月就读一半,这效率也确实有点低了,自己还要加把劲,争取四月底全部看完,第六章讲的是Android的绘图机制,应该算是比较核心的东西了,不管什么功能,最终都是以图形的方式呈现给用户的,因此,掌握Android的绘图技巧,可以在让你设计应用的时候更加的随心所欲,对Android的理解更高 基本的绘图方法,相信读者都已经

字符-c++ primer plus 里面第六章isdigit用法的一些疑问,初学者,脑残见谅

问题描述 c++ primer plus 里面第六章isdigit用法的一些疑问,初学者,脑残见谅 楼主在做这本书第六章课后习题时有些不理解这两段代码 代码1:isdigit的使用目的是识别出数字,把数字掠过而仅处理剩下的字符 while(ch!='@') { if(isdigit(ch)) cin.get(ch); else { if(islower(ch)) ch=toupper(ch); else ch=tolower(ch); cout< cin.get(ch); } 代码2:isdig

Swift语言指南(六)--可选值

原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值  注: 在 C 和 Objective-C 中可选值的概念并不存在.Objective-C 中(与可选值)最相近的(概念)是,一个以对象为返回值的方法,也可以返回 nil,nil表示"不存在有效的对象".不过,这规则只对对象有效--对于结构.基本的 C 类型或枚举值无效.对于这些类型,Objective-C 语言的方法通常会

第六章、输入输出系统

第六章.输入输出系统 I/O系统的概念:指用于实现数据输入.输出以及数据存储的系统. 假脱机(SPooling)系统 假脱机技术是低速输入输出设备与主机交换的一种技术,通常也称为"假脱机真联机",核心思想史以联机的方式得到脱机的效果. 通过假脱机技术,可以将一台物理I/O设备虚拟为多台逻辑I/O设备,这样也就允许多个用户共享一台物理I/O设备. 脱机技术:利用专门的外围控制机,先将低速I/O设备的数据传到高速磁盘上,或者相反.这样当处理机需要输入数据时,便可以直接从磁盘中读取数据,极大

ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

原文:ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性                                         深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第三篇 ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件 ASP.NET自定义控件组件开发 第三章 为控件添加事件 前