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"; ...
随机推荐
- jQuery图片滚动插件
//该组件目前仅适用于一次移动一张图片的情况 (function ($) { $.fn.extend({ "scroll": function (options) { option ...
- -[NSNull countByEnumeratingWithState:objects:count:]:
当数组为空时遍历数组容易出这样的问题, -[NSNull countByEnumeratingWithState:objects:count:]: unrecognized selector sent ...
- Odoo PDF 取消Header后 空白处理
处理方法是 设置纸张格式中的上边距 ,调整位合适的位置.效果如下图:
- *POJ 1222 高斯消元
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9612 Accepted: 62 ...
- java并发编程(十八)阻塞队列和阻塞栈
阻塞队列 阻塞队列是Java 5并发新特性中的内容,阻塞队列的接口是java.util.concurrent.BlockingQueue,它有多个实现类:ArrayBlockingQueue.Dela ...
- EditPlus快捷键
Editplus 选中一行: ctrl+rEditplus 复制一行: ctrl+r选择行,然后ctrl+c复制.复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行Ed ...
- C/C++_date&time
在标准C/C++中与日期和时间相关的数据结构 注意:年份是实际年份与 1900 的差值 我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下: #ifndef _TM_DEFIN ...
- windows多线程编程星球(一)
以前在学校的时候,多线程这一部分是属于那种充满好奇但是又感觉很难掌握的部分.原因嘛我觉得是这玩意儿和编程语言无关,主要和操作系统的有关,所以这部分内容主要出现在讲原理的操作系统书的某一章,看完原理是懂 ...
- 初学java之12 泛型编程的个人理解总结
首先,强调一个观点: 对于我这样的初学者,一定要站在虚拟机和编译器的角度来分析java 语言的种种特性,泛型也不例外.(我认为这个一条正确的学习经验) 写这篇文章起源于最近在学java,有一天在路上和 ...
- SDOI 2016 游戏
树链剖分 线段树维护区间最小值,区间最大值 更新,对于每一个区间,找到当前区间的最小值的最大值,和要更新的值比较,如果比最大值还大,则此数对于以后的询问无任何贡献,直接返回即可,若有贡献,则一直递归到 ...