半缘修道半缘君丶 2016-03-26 11:34 采纳率: 62.5%
浏览 1245
已采纳

初学者的c语言问题,如图

图片说明

 #include <stdio.h>
int main()
{
    int i,j,k,ch,n;
    printf("请输入行数:");
    scanf("%d",&n);
    for(i=1;i<n+1;i++)
    {
        for(k=1;k<n+1-i;k++)
        {
            printf(" ");
        }
        for(j=1,ch='A';j<=i;j++,ch++)
        {
            printf("%c",ch);
        }
        ch=ch-2; //关键
        for(j=1;j<i;j++,ch--)
        {
            printf("%c",ch);
        }
        printf("\n");
    }

    for(i=1;i<n;i++)
    {
        for(k=1;k<=i;k++)
        {
            printf(" ");
        }
        for(j=n,ch='A';j>i;j--,ch++)
        {
            printf("%c",ch);
        }
        ch=ch-2;
        for(j=n;j>i;j--,ch--)
        {
            printf("%c",ch);
        }
        printf("\n");
    }

}

为什么会出现右边的@啊

  • 写回答

2条回答

  • 小灸舞 2016-03-26 11:58
    关注

    下半部分有个地方多循环了一次,打印一行的后半部分应该比前半部分少循环一次(改的地方我标注在代码里了)

    #include <stdio.h>
    int main()
    {
        int i,j,k,ch,n;
        printf("请输入行数:");
        scanf("%d",&n);
        for(i=1;i<n+1;i++)
        {
            for(k=1;k<n+1-i;k++)
            {
                printf(" ");
            }
            for(j=1,ch='A';j<=i;j++,ch++)
            {
                printf("%c",ch);
            }
            ch=ch-2; //关键
            for(j=1;j<i;j++,ch--)
            {
                printf("%c",ch);
            }
            printf("\n");
        }
    
        for(i=1;i<n;i++)
        {
            for(k=1;k<=i;k++)
            {
                printf(" ");
            }
            for(j=n,ch='A';j>i;j--,ch++)
            {
                printf("%c",ch);
            }
            ch=ch-2;
            for(j=n;j>i;j--,ch--)//应该改成for(j=n;j-1>i;j--,ch--)
            {
                printf("%c",ch);
            }
            printf("\n");
        }
    
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘