闪电⚡️速度!
2026-08-31 13:05:58
发布于:浙江
30阅读
0回复
0点赞
题解:
- 上半部分
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++)//初始空格
printf(" ");
if(i==1){
printf("%c",c);//开头符号
}else{
printf("%c",c);//非开头
for(j=1;j<=(i-1)*2-1;j++)//巧算空格
printf(" ");
printf("%c",c);//打印字符
}
printf("\n");
}
注意⚠️这儿的巧算!
第二行:
空一格
第三行:
空三格
第四行:
空五个
……
第n行:
空 (n-1)*2-1 个
- 下半部分
for(i=1;i<=n-1;i++){
for(j=1;j<=i;j++)
printf(" ");//初始空格
if(i==n-1)
printf("%c",c);//结尾字符
else{//非结尾
printf("%c",c);
for(j=1;j<=(n-i-1)*2-1;j++)//巧算空格
printf(" ");
printf("%c",c);//后面字符
}
printf("\n");//换行
}
注意⚠️这儿的巧算!
设输入为5:
第一行:
空5格
第二行:
空3格
第三行:
空1格
第n行:
空(输入的数字 - n - 1)*2-1格
代码:
#include<stdio.h>
int n,i,j;
char c;
int main(){
scanf("%d %c",&n,&c);
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++)
printf(" ");
if(i==1){
printf("%c",c);
}else{
printf("%c",c);
for(j=1;j<=(i-1)*2-1;j++)
printf(" ");
printf("%c",c);
}
printf("\n");
}
for(i=1;i<=n-1;i++){
for(j=1;j<=i;j++)
printf(" ");
if(i==n-1)
printf("%c",c);
else{
printf("%c",c);
for(j=1;j<=(n-i-1)*2-1;j++)
printf(" ");
printf("%c",c);
}
printf("\n");
}
return 0;
}
全部评论 1
注意⚠️:
不要只抄代码,最重要的是代码推理的过程!2026-08-31 来自 浙江
0





有帮助,赞一个