#include <stdio.h>
#include <stdlib.h>
//01.总结双重for循环的打印规律
// 1.对规律做出分析,便于后续代码编写
// 2.双重for循环内含的规律分析:
// (1).外层循环执行一次,内存循环执行一轮
// (2).外层循环控制行数,内层循环控制列数
// (3).外层循环控制打印出来的换行符
void show()
{
for (int i = 1; i <= 9; i++)
{//01次-->外层循环-->控制行
for (int j = 1; j <= 9; j++)
{//10次-->内层循环-->控制列
printf("%2d*%2d=%2d", j, i, j*i);
}
printf("\n");//换行
}
}
//02.打印左下三角:(左大三角)
// 观察数字规律得出:j<=i
void leftDown()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j <= i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
}
printf("\n");
}
}
void rightUp()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j >= i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
else
{
printf("%8s", " ");
}
}
printf("\n");
}
}
//03.打印左小三角:
// 1.先确定左小三角属于那块儿大三角(左大三角||右边大三角)
// j<=i
// 2.再确定左小三角本身:观察图形规律得知
// j<=10-i
// (1).都是等于符号,则添加等于符号,否则就不添加
// (2).从1开始,用最大数+1,再进行减去i
// (3).进行比较的时候,j总是在关系运算符的左边
// 3.总结规律:
// 凡是在左边,都属于是小于等于
// 凡是在右边,都属于是大于等于
// 原来是>=,那么后来就是<=
void left()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j <= i && j <= 10 - i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
}
printf("\n");
}
}
void right()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j >= i && j >= 10 - i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
else
{
printf("%8s", " ");
}
}
printf("\n");
}
}
void up()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j >= i && j >= 10 - i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
else
{
printf("%8s");
}
}
printf("\n");
}
}
void down()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j <= i && j >= 10 - i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
else
{
printf("%8s", " ");
}
}
printf("\n");
}
}
//04.打印左上三角(大三角):
void leftUp()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j <= 10 - i)
{
printf("%2d*%2d=%2d", j, i, j *i);
}
}
printf("\n");
}
}
void rightDown()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j >= 10 - i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
else
{
printf("%8s", " ");
}
}
printf("\n");
}
}
//05.打印九九乘法表
void printf99()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j <= i)
{
printf("%2d*%2d=%2d", j, i, j*i);
}
}
printf("\n");
}
}
//06.对双重for循环打印三角的大统一总结:
// 1.先确定所需要打印的三角是大三角还是小三角?
// 大三角:
// 左下三角:leftDown
// 右上三角:rightUp
// 左上三角:leftUp
// 右下三角:rightDown
// 小三角:
// 左三角:left
// 右三角:right
// 上三角:up
// 下三角:down
// 2.再确定所需要打印的三角在那块儿区域?
// 大三角:
// 左下三角:leftDown
// j<=i
// 右上三角:rightUp
// j>=i
// 左上三角:leftUp
// j<=10-i
// 右下三角:rightDown
// j>=i
// 小三角:
// 左三角:left
// 左下三角与左上三角的交集
// j<=i && j<=10-i
// 右三角:right
// 右上三角与右下三角的交集
// j>=i && j>=10-i
// 上三角:up
// 右上三角除去右三角
// j>=i && j <= 10 - i
// 下三角:down
// 左下三角除去左三角
// j<=i && j >= 10 - i
// 3.关于关系运算符的准确适用:
// 要么全部使用含有等于的符号
// 要么全部使用不含等于的符号
// 母数等于最大数+1
// 左三角和右三角符号完全相同
// 上三角和下三角符号完全相反
int main(void)
{
//show();
//leftDown();
//rightUp();
//left();
//right();
//up();
//down();
//leftUp();
//rightDown();
system("pause");
}
//07.循环结构可以无限嵌套,但是企业开发不建议出现
int main02(void)
{
for (;;)
{
for (;;)
{
while (1)
{
}
}
}
}
//08.将双重for循环转变成为双重while循环
// for循环和while循环可以进行完美转换
int main03(void)
{
int i = 1;
while (i < 10)
{
int j = 1;
while (j < 10)
{
if (j <= i)
{
printf("%d*%d=%2d\t", j, i, j*i);
}
j++;
}
printf("\n");
i++;
}
system("pause");
}
输出三角形
最新推荐文章于 2020-07-08 16:52:32 发布