zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C语言-5月20日 利用for循环打印出9*9乘法表、由“*”构成的七行菱形的打印、数字金字塔

C语言循环 利用 for 数字 20 打印 构成
2023-09-27 14:19:45 时间
#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的数字金字塔。