红的笔记是我想要达到的效果,123是0的数量。我代码没看出错在哪,但是第三行就开始报错是为什么。有没有人可以帮我看一下
去除第17行24行,然后在第16行多打印一个换行应该就可以了。
修改如下:
#include <stdio.h>
int main(void){
int n;
scanf("%d",&n);
int i,j;
int m;
int middle;
middle = (n+1)/2;
for(i=1;i<=middle;i++){
m=i-1;
while(m>0){
printf("0");
m--;
}
printf("*\n");
// for(j=1;j<=n;j++){
// if(i+j==2*middle){
// printf("*\n");
// }else{
// printf("0");
// }
// }
}
return 0;
}
【以下回答由 GPT 生成】
代码中的错误是在第15行和第18行。在这两行中,将输入的整数n与字符型变量进行输出,需要使用格式化转换符%d来输出整数。修改代码如下:
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int i, j;
int m;
int middle = (n+1) / 2;
for(i = 1; i <= middle; i++) {
m = i - 1;
while(m > 0) {
printf("0");
m--;
}
printf("*");
for(j = 1; j <= n; j++) {
if(i + j == 2 * middle) {
printf("%d", n);
}
printf("*");
}
printf("\n");
}
return 0;
}
这样修改后,代码就能正常运行并输出期望的结果了。
【相关推荐】