c - 在 C 中使用数组显示模式

标签 c arrays

我正在尝试在 C 中显示一个模式。它看起来像这样:

目标:

ABCDCBA
ABC CBA
AB   BA
A     A

我知道如何使用更传统的模式方法获得大致相同的输出。这是使用传统方式(使用 for 循环和换行符)显示的内容:

获取输出:

ABCDDCBA
ABC  CBA
AB    BA
A      A

我想使用数组而不是传统的方式来实现精确的目标模式。我试图将所有内容存储在数组中,然后只显示数组元素。

这是我的代码:

#include<stdio.h>
#include<conio.h>

void main()
{
    int k,n=6,m;
    int i=0,j=0;
    int arr[10][10];
    clrscr();
    while(i<=n)
    {
        j=0;
        k=65;
        m=2*n;
        while(j<=m)
        {    
            while(j<=n-i)
            {
                arr[i][j]=k;
                k++;
                j++;
            }
            for(j=n-i;j<=n+i;j++)
            {
                printf(" ");
            }
            for(j=n+i;j<=m;j++)
            {
                printf("%c",k);
                k--;
            }
        }
        i++;
    }
    i=0;
    while(i<=n)
    {
        j=0;
        while(j<=m)
        {
            printf("%c",arr[i][j]);
            j++;

        }
        printf("\n");
        i++;
    }

    getch();
}

最佳答案

我正在查看你的acode,必须说所有的ijk等确实让我困惑。被告知要使用有意义的变量名是有原因的,因为这样更容易阅读代码并理解每个变量的含义。我非常确定,一旦您更改了真正的名称,您很快就会发现自己的错误。

话虽如此,请查看您的代码

        for(j=n+i;j<=m;j++)
        {
            printf("%c",k);
            k--;
        }

你从j=n+i开始陈述,并在打印后执行k--;,这意味着你打印的第一个字母与最高的字母相同,意味着您将打印“ABCDDCBA”...

关于c - 在 C 中使用数组显示模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555755/

相关文章:

c - %g 浮点表示的最大字符串长度是多少?

c - 学习如何在使用 scanf 时正确引用结构体字段 (C)

python - 计算星期几的程序

c - C中使用不同维度数组的指针数组等价

c++ - 如何读取大量数字?

c - 扫描功能在循环内不起作用

c - 如何在c中将包含十六进制数字的字符串转换为十六进制格式?

java - 如何创建一个包含 "n"个随机整数的数组?

java - 整数数组和关键字final。 [Java]

java - 如何将整数元素插入排序数组