#include <stdio.h>
int main()
{
int a,c,d;
char b;
while(1)
{
scanf ("%c",&b);
if (b!='@'){
scanf ("%d",&d);
for(c=1;c<=d-1;c+=1){
printf (" ");
}
printf("%c",b);
for(c=1;c<=d-1;c+=1){
printf (" ");
}
printf ("\n");
for(a=1;a<d-1;a++){
for(c=1;c<=d-a-1;c+=1){
printf(" ");
}
printf ("%c",b);
for(c=1;c<=2a-1;c++){
printf (" ");
}
printf ("%c",b);
for(c=1;c<=d-a-1;c+=1){
printf (" ");
}
printf ("\n");
}
for(c=1;c<=2d-1;c++){
printf ("%c",b);
}
}
printf ("\b\b");
else{
break;
}
printf ("\n");
}
}
return 0;}
代码输出时过度换行初学者遇问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qzjhjxj 2022-09-28 08:57关注
题主的代码没什么大问题,修改如下,供参考:
#include <stdio.h> int main() { int a, c, d; char b; while (1) { scanf("%c", &b); if (b != '@') { scanf("%d", &d); for (c = 1; c <= d - 1; c += 1) { printf(" "); } printf("%c", b); for (c = 1; c <= d - 1; c += 1) { printf(" "); } printf("\n"); for (a = 1; a < d - 1; a++) { for (c = 1; c <= d - a - 1; c += 1) { printf(" "); } printf("%c", b); for (c = 1; c <= 2 * a - 1; c++) { printf(" "); } printf("%c", b); for (c = 1; c <= d - a - 1; c += 1) { printf(" "); } printf("\n"); } for (c = 1; c <= 2 * d - 1; c++) { printf("%c", b); } printf("\b\b"); } else { break; } printf("\n"); } return 0; }
题主的写法太繁琐了,提供一个简单的写法,供参考:
//空心三角形 #include <stdio.h> int main() { int i, j, n = 4; char ch = 'a'; while (scanf("%d %c", &n, &ch) == 2 && ch != '@') { //循环输入,直到输入:数字‘@’ 时结束输入退出 for (i = 0; i < n; i++) { for (j = i; j < n - 1; j++) printf(" "); for (j = 0; j < 2 * i + 1; j++) printf("%c", (i == n - 1 || j == 0 || j == 2 * i) ? ch : ' '); for (j = i; j < n - 1; j++) printf(" "); printf("\n"); } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂