#include<stdio.h>
int main()
{
int sum = 0;
for(int i = 1;i <= 9;i++){//控制行数
for(int j = i;j <= 9;j++){//控制每行的输出
if(i <= j)
{
sum = i * j;
printf("%d * %d = %d ",i,j,sum);
}
}
printf("\n");//每次打印完换行
}
return 0;
}
如图所示为运行结果:
输出完成
同样类型的题目,如何通过for循环打印出一个由“*”组成的七行菱形的图形呢?
#include<stdio.h>
//前四行空格的规律为:4-i,*的规律为2i-1,后三行空格的规律为:i,“*”的规律为:7-2i
int main()
{
int i = 0;
int j = 0;
int k = 0;//定义三个整型值分别对应行数、空格数、“*”数
for(i = 1;i<=4;i++){//将打印的菱形的七行分为两个部分,第一个部分为前四行,第二部分为后三行
for(j = 1;j<=4 - i;j++){
printf(" ");
}
for(k = 1;k<=2 * i -1;k++){
printf("*");
}
printf("\n");//换行操作
}
for(i =1;i<=3;i++){//后三行循环开始
for(j = 1;j<=i;j++){
printf(" ");
}
for(k = 1;k <= 7-2*i;k++){
printf("*");
}
printf("\n");//换行操作
}
return 0;
}
如图为运行结果:
输出完成
数字金字塔:
#include<stdio.h>
void pyramid(int n,int m)//定义数字和行数
{
for(int i = 0;i<m;i++){//定义i值循环,当i<行数时执行循环
for(int k = 0;k<m-1-i;k++){//二层嵌套,定义k值
printf(" ");//打印每行数字中间的空格
}
for(int j = 0;j<=i;j++){
printf("%d ",n);//打印数字
}
printf("\n");//每执行完一次换行
}
}
int main()
{
int a = 0;
int b = 0;
printf("请您输入两个数值:\n");
scanf("%d%d",&a,&b);
pyramid(a,b);
}
如图,我输入数字7和8:
输出完成
如上图所示,输出结果为一个数字为7行数为8的数字金字塔。