我需要做的是输出以下控制台程序:表初始化失败具有可变
aaaaaaaaa
abbbbbbba
abcccccba
abcdddcba
abcdedcba
abcdddcba
abcccccba
abbbbbbba
aaaaaaaaa
所以我做了下面的代码,至极似乎工作:
#include <stdio.h>
#include <string.h>
int main()
{
int c, i = 0, p;
scanf("%d", &c);
int len = c*2-1;
printf("%d\n", len);
char ligne[9];
while (i < len-1){
p = 0;
for (int j = 0; j < c; j++){
ligne[len-1-j] = p+97;
ligne[j] = p+97;
if (j < c && p < i)
p++;
}
printf("%s\n", ligne);
i++;
}
return 0;
}
这似乎工作,但是当我更换:
char ligne[9];
通过:
char ligne[len];
我得到以下的输出:
Your program output contains an invalid UTF8 character.
看来这个表有点“扩展”:有在它远不止9场。
我知道在C的某些版本中不允许用变量初始化表,但这对我来说不是问题。那么,有没有人知道该从哪里来?
BTW是你的程序给正确的输出 - 因为我没有得到 – exexzian
程序产生正确的表的上半部分;它不能正确再现下半部分。 –