这代码哪里错了#include <stdio.h> int main() { int n,i,j; char ch; scanf("%d",&n); for(i=1;i<=n;i++) { ch='A'; for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=i;j++) printf("%c",ch++); ch--;ch--; for(j=1;j<=i-1;j++); printf("%c",ch--); printf("\n"); } return 0; }
时间: 2023-06-23 10:54:30 浏览: 109
计算机动画作业_矢量插值QT源码
这段代码有两个问题:
1. 第20行多了一个分号,导致第22行的代码块成为了一个空语句,使得程序输出不符合预期。
2. 第15行中,你输入的是一个数字,但是在后面的循环中使用的是字符,这样会导致输出的结果不符合预期。
下面是修改后的代码:
```c
#include <stdio.h>
int main() {
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++) {
char ch='A'; // 将字符定义在循环内部
for(j=1;j<=n-i;j++) { // 输出空格
printf(" ");
}
for(j=1;j<=i;j++) { // 输出上半部分字符
printf("%c",ch++);
}
ch--;ch--; // 注意这里要让 ch 回到上一个字符
for(j=1;j<=i-1;j++) { // 输出下半部分字符
printf("%c",ch--);
}
printf("\n");
}
return 0;
}
```
希望能帮到你!
阅读全文