我的代码哪里出错了?

img


这是我敲的代码
#include
int main(){
int n,i,j,k;
char ch;
scanf("%c %d",&ch,&n);
if(ch!='@'){
for(i=1;i<=n;i++){
for(j=1;j<=(n-1);j++){
printf(" ");}
if(i=1){
printf("%c",ch);
}
else if(i=n){
for(k=1;k<=2n-1;k++)
printf("%c",ch);
}
else
printf("%c",ch);
for(j=1;j<=(n-1);j++){
printf(" ");
}
printf("\n");
}
}

return 0;

}

照你思路改了一下

#include <stdio.h>
int main()
{
    int n, i, j, k;
    char ch;
    scanf("%c %d", &ch, &n);
    if (ch != '@')
    {
        for (i = 1; i <= n; i++)
        {
            for (j = 1; j <= (n - i); j++)
            {
                printf(" ");
            }
            if (i==n)
            {
                for (k = 1; k <= 2 * i - 1; k++)
                {   
                    printf("%c", ch);
                }
            }
            else
            {
                 for (k = 1; k <= 2 * i - 1; k++)
                {   
                if (k==1||k==2*i-1)
                {
                    printf("%c", ch);
                }
                else{
                     printf(" ");
                }
                
                }
            }
            for (j = 1; j <= (n - 1); j++)
            {
                printf(" ");
            }
            printf("\n");
        }
    }

    return 0;
}

从运行来说首先 你的如2n-1应写为2*n-1,否则报错
从逻辑上记得分清楚i和n之间的不同
你照着理解一下