经典例题:从键盘输入一个正整数n(代表正三角的层数),打印如下图形。注意中间一行左侧不留空白
例:
输入:4
输出:如下
*
***
*****
*******
*****
***
*
基本逻辑:循环嵌套
一共有两种实现方法:
1.将图形分为两部分:前四行 和 后三行
2.将图形分为三部分:即前三行 中间一行 后三行
(由于基本语法和逻辑无太大区别,这里我们拿第一种情况来解答)
首先是代码基础部分如下:包括头文件和需要的变量,这里输入变量设为 x
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j ,m, n, p, q,x;
scanf("%d",&x);
然后我们来实现图形的第一部分
for(i=1;i<=x;i++){
for(j=x-i;j>0;j--){
printf(" ");
}
for(m=1;m<=2*i-1;m++){
printf("*");
}
printf("\n");
}
总循环为行数:其包含两个分支:1.空格 2.星号
在第一层分支中,找出空格数量与输入变量x和行数的关系,显然为一个递减的等差数列,所以用到 j - - ,因为 任何数减去0都为0,所以直接写就好
在第二层分支中,找出星号数量与行数的关系,显然也为等差递减数列,由于星号是从小到大数来打印,所以与上一分支逻辑相反,这里条件为小于等于2*i-1,m++,且从1开始
然后我们来实现第二部分

该博客介绍了如何使用C语言实现根据用户输入的层数打印一个正三角形的图形,包括空格和星号的排列。通过循环嵌套,分别实现了三角形的上半部分和下半部分。代码逻辑清晰,分为两部分分别处理,对于每一部分,通过调整空格和星号的数量来达到图形的效果。
,打印如下图形。注意中间一行左侧不留空白。&spm=1001.2101.3001.5002&articleId=123636616&d=1&t=3&u=255f7843f9fe4cdcb813c127745bd167)
7183

被折叠的 条评论
为什么被折叠?



