打印菱形
- 通过观察我们发现菱形是有规律的,如果把星星最多的行定位参考值line,此处的line=3。那line行之前是个正三角形,往后是倒三角形。那问题就转换为打印两个三角形。
打印上三角形
第一行= line-1 个 空格 + 1 个 星星
第二行= line-2 个 空格 + 3 个 星星
第三行= line-3 个 空格 + 5 个 星星
打印下三角形
第四行= line-2 个 空格 + 3 个 星星
第五行= line-1 个 空格 + 1 个 星星
很显然,如果以星星最多的行作为参考值line,规律就显而易见了。
源代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int line = 0;
int i = 0;
printf("请输入行数打印菱形\n");
scanf("%d", &line);
//打印上三角
for (i = 0; i < line; i++)
{
//打印一行
int j = 0;
for (j = 0; j < line - 1 - i; j++)
{
printf(" "); //打印空格
}
for (j = 0; j < 2 * i + 1; j++)
{
printf("*"); //打印*
}
printf("\n");
}
//打印下三角
for (i = 0; i < line - 1; i++)
{
//打印一行
int j = 0;
for (j = 0; j <= i; j++)
{
printf(" ");
}
for (j = 0; j < 2 * (line - 1 - i) - 1; j++)
{
printf("*"); //打印*
}
printf("\n");
}
return 0;
}
运行结果:
打印指定的乘法口诀表
- 乘法口诀表行列的规律显而易见,第一行打印一个,第二行两个,第三行三个,那么使用两个for嵌套,外层控制行数,内层控制每一行的列的打印。
源代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void table(int a)
{
int i = 0;
for (i = 1; i <= a; i++) //一共要循环多少行
{
int j = 0;
for (j = 1; j <= i; j++) // 每一行要循环多少列
{
printf("%d*%d=%-2d\t", i, j, i*j);
}
printf("\n"); //每一列结束换行
}
}
int main()
{
int a = 0;
printf("请输入期望的打印的乘法口诀表,输入9,代表9x9乘法口诀表\n");
scanf("%d", &a);
table(a);
return 0;
}
运行结果: