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=;i<=;i++)
{
printf("---------------\n");
for(j=;j<=;j++)
{
printf("****************\n");
}
printf("---------------\n\n");
}
}

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

*
**
***
****
*****
99乘法表

#include "stdio.h"
void main()
{
int i,j;
for(i=;i<=;i++)
{
for(j=;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=;i<=;i++)
{
for(j=;j<=;j++)
{
printf("*");
} for(j=;j<=;j++)
{
printf("@");
} printf("\n");
}
}

等腰三角形
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j,k;
for(i=;i<=;i++)
{
for(k=;k<=-i;k++)
{
printf(" ");
} for(j=;j<=*i-;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=;i<=;i++)
{
for(k=;k<=i-;k++)
{
printf(" ");
} for(j=;j<=-*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=;x<=/;x++)
for(y=;y<=/;y++)
for(z=;z<=*;z++)
{
if((x*+y*+z/==)&&(z%==)&&(x+y+z==))
{
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=;x<=;x++)
{
for(y=;y<=;y++)
{
for(z=;z<=;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=,j,k,r=; //r表示行数
for(i=-*r;i<=r;i++){
for(k=;k<=abs(i);k++)
{
printf(" ");
}
for(j=;j<=(*r+)-*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=;i<=n;i++)
{
printf("%c",c);
}
} void main()
{
int i=,j,k,r=;
for(i=-*r;i<=r;i++){
out(' ',abs(i));
out('*',(*r+)-*abs(i));
printf("\n");
}
} /*
-4 -3 -2 -1 0 1 2 3 4
*/

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

C语言 第六章 多重循环的更多相关文章
- C语言 第六章 多重循环练习
一.循环输入 #include "stdio.h" void main() { char c; do { printf("我告诉你1+1=2\n"); prin ...
- java科学和艺术语言 第六章 课后编程
家转载,为保留作者成果.转载请注明出处,http://blog.csdn.net/netluoriver,有些文件在资源中也能够下载!假设你没有积分,能够联系我索要. 1. package Sixth ...
- 新手小白入门C语言第六章:C运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 小编将会为大家逐一介 ...
- OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)
OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-wh ...
- “全栈2019”Java第二十六章:流程控制语句中循环语句do-while
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- C语言程序设计第六次作业——循环结构(2)
C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...
- C/C++——C语言跳出多重循环方法
c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto ; i < MAX1; i++) { ; j < MA ...
- Java语言程序设计(基础篇) 第六章 方法
第六章 方法 6.2 定义方法 1.方法的定义由方法名称.参数.返回值类型以及方法体组成. 2.定义在方法头中的变量称为形式参数(formal parameter)或者简称为形参(parameter) ...
- Perl语言入门:第六章习题:处理用户所指定的名字并汇报相应的姓。
37 print "\n----------------------------------_exercise_6_1--------------------------\n"; ...
随机推荐
- DBUtils 笔记
一.DBUtils介绍 apache 什么是dbutils,它的作用 DBUtils是java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作.可 ...
- Android事件分发传递
一.与触摸事件有关的几个方法 boolean dispatchTouchEvent(MotionEvent ev); 接收到触摸事件时,是否分发事件到下面的View 返回true:分发触摸事件 返回f ...
- Unity3D 脚本手册
1.private Ray ray; --定义射线 ray = Camera.main.ScreenPointToRay(Input.mousePosition); --摄像机发出的射线投射鼠标到 ...
- 串口计时工具Grabserial简介及修改(添加输入功能)
Grabserial是Tim Bird用python写的一个抓取串口的工具,这个工具能够为收到的每一行信息添加上时间戳. 如果想对启动时间进行优化的话,使用这个工具就可以简单地从串口输出分析出耗时. ...
- 谢欣伦 - OpenDev原创教程 - 服务端套接字类CxServerSocket
这是一个精练的服务端套接字类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxServerSocket的使用如下(以某个叫做CSo ...
- 【转】WriteMessage的信息在AutoCAD中命令行中实时显示
之前程序中有段发送信息到命令行上显示的代码,如下: ed.WriteMessage("开始标注横断面高程,请稍候!"); 但是发现命令行中并不马上显示,代码也明明运 ...
- 使用Junit等工具进行单元测试
一.类的定义: 类是同一事物的总称,类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类. 二.Junit工具的使用: 1.首先新建一个项目叫JUnit_Test,我们编写一个 ...
- 介绍.NET 开发必备工具 .NET Portability Analyzer
随着.NET的原来越开放,不仅仅是开源这么简单了,也意味着.NET程序员要关注越来越多的平台,涵盖.NET Mic Framework, Xamarin,Mono,.NET等等,从windows到li ...
- The Hacker's Guide To Python 单元测试
The Hacker's Guide To Python 单元测试 基本方式 python中提供了非常简单的单元测试方式,利用nose包中的nosetests命令可以实现简单的批量测试. 安装nose ...
- 基于GIS的旅游辐射区人口统计
在旅游规划中,考虑旅游景点周边的人口负载量是很重要的一个方面,这将直接影响资源的投入和配置,开发潜力和规模等.基于GIS可以将人口信息进行空间化的展示,还可以通过空间分析的方法计算出旅游景点辐射区的人 ...