我正在尝试在 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,必须说所有的i
、j
、k
等确实让我困惑。被告知要使用有意义的变量名是有原因的,因为这样更容易阅读代码并理解每个变量的含义。我非常确定,一旦您更改了真正的名称,您很快就会发现自己的错误。
话虽如此,请查看您的代码
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/