A30327【C++】星号梯形
2026-07-31 11:25:42
发布于:浙江
11阅读
0回复
0点赞
题目描述
输入一个整数打印字符图形
n=3时输出
×××
×××××
×××××××
n=5时输出
×××
×××××
×××××××
×××××××××
×××××××××××
输入格式
一个整数n(0<n<10)
输出格式
一个字符图形
代码(保证AC)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
for(int i = 1;i<=n;i++){
for(int j = n-i-1;j>=0;j--)
printf(" ");
for(int j = 3+(i-1)*2;j>=1;j--)
printf("*");
printf("\n");
}
return 0;
}
题解
- 会循环的
- 输入功能
scanf("%d",&n);
- 代码核心
- 用i循环(外层循环)
- 为什么用
for(int i = 1;i<=n;i++)
而不用
for(int i = n;i>=1;i--)
- 原因是后面的内层循环
- 用2个j循环(内层循环)
- 输出前缀空格
for(int j = n-i-1;j>=0;j--)
printf(" ");
- 输出图案
for(int j = 3+(i-1)*2;j>=1;j--)//也能显示出i的重要性
printf("*");
- 打印换行
printf("\n");
附加案例
打印字符爱心
- 输入格式
爱心突起的地方的行数 - 输出格式
输出整个爱心 - 示例
输入
3
输出
# #
### ###
##########
##########
########
######
####
##
- 答案
#include<stdio.h>
int a,n,i,j;
int main(){
scanf("%d",&n);
for(i=1;n>=i;i++){
for(j=n-i;j>=1;j--)
printf(" ");
for(j=i*2-1;j>=1;j--)
printf("#");
for(j=n-i;j>=1;j--){
printf(" ");
}
for(j=i*2-1;j>=1;j--)
printf("#");
printf("\n");
}
for(i=1,a=n*2-1;n*2-1>=i;a--,i++){
for(j=i-1;j>=1;j--)
printf(" ");
for(j=a*2;j>=1;j--)
printf("#");
printf("\n");
}
return 0;
}
点赞破百再更新一个
(点赞是更新的最大动力)↓
这里空空如也





有帮助,赞一个