我需要制作一个打印以下输出的控制台程序:
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 中不允许使用变量初始化表,但这对我来说不是问题。那么,有谁知道问题来自哪里?