唐僧爱吃唐僧肉 2017-04-08 00:56 采纳率: 16.7%
浏览 1592
已采纳

求大神帮忙,高手赐教,小白感激不尽

题目:

绘制金字塔(4分)
题目内容:
要求用户从键盘输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案:
    A
   ABA
  ABCBA
 ABCDCBA

程序运行结果示例1:
Please input a capital:
D↙
____A
ABA
__ABCBA
_ABCDCBA
程序运行结果示例2:
Please input a capital:
F↙
_
__A
_____ABA
____ABCBA
___ABCDCBA
__ABCDEDCBA
ABCDEFEDCBA
(说明:上面运行结果示例中,每行字母前面的下划线"
"代表屏幕上实际输出的是空格,最后一行前面有一个空格,倒数第二行有两个空格,以此类推。)

输入提示信息:"Please input a capital:\n"
输入格式: "%c"
输出格式:"%c"
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
小白的程序:
#include
int main()
{
char m,n;
n='A';
int i,k;
printf("Please input a capital:\n");
scanf("%c",&m);
for(i=1;i<=(int)m-(int)n;i++)
{
for(k=(int)n;k<=(int)m-(int)n-i+1;k++)
{
printf(" ");
}
for(k=(int)n;k<=(int)n+i-1;k++)
{
printf("%c",k);
}
for(k=(int)n+i-2;k<=(int)n;k--)
{
printf("%c",k);
}
for(k=(int)n;k<=(int)m-(int)n-i+1;k++)
{
printf(" ");
}
printf("\n");
}
}
为什么运行的时候乱码了?
求大神赐教。

  • 写回答

10条回答 默认 最新

  • 星e雨 2017-04-08 05:40
    关注
    char m, n;
    n = 'A';   
    int i, k;
    printf("Please input a capital:\n");
    scanf_s("%c", &m);   
    for (i = 0; i <= (int)m - (int)n; i++)
    {
        for (k = i; k <= (int)m - (int)n; k++)
        {
            printf(" ");
        }
        for (k = 0; k < 2 * i + 1;k++)
        {
            if ((int)(n + k) <= (int)(n+i))
            {
                printf("%c", n + k);
            }
            else
            {
                printf("%c", n+2*i-k);
            }
    
        }
        for (k = i; k <= (int)m - (int)n; k++)
        {
            printf(" ");
        }
        printf("\n");
    }
    
    该程序是我修改的,测试过了,
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决