循环输入一个数,输出字母金字塔,直到输入q停止

循环输入一个数,输出字母金字塔,直到输入q停止

问题描述:

#include<stdio.h>
int main()
{
int i,j,k;
char ch,n;

while(n!='q')
{scanf("%d",&n);

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

}为什么一按q就无限循环了()求求大佬们了(>﹏<)

这么改下试试:

#include<stdio.h>
int main()
{
    int i,j,k;
    char ch,n;

    while(scanf("%d",&n)==1 && (ch=getchar())!='q')//(n!='q')
    {
        //scanf("%d",&n);

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

    return 0;
}