发生了如图的报错 提示14 17行有问题
原因在于
arr[i] = { '*' }; 来初始化一个特定元素的字符数组。大括号语法 {} 通常用于初始化整个数组,而不是单个元素
应改为arr[i] = '*'
然后发现不报错 程序可以执行
附赠 打印X代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//定义变量部分
int a;//用户输入的数字
char arr[20] = { };//数组
char arr2[20] = { };//数组
int i, j;//循环所用
int left, right;//左右指针
int main() {
while (scanf("%d", &a) != EOF) {
left = 0, right = a;
//初始化数组
for (i = 0; i < a; i++) {
arr[i] = { '*' };
}
for (i = 0; i < a; i++) {
arr2[i] = { ' ' };
}
//算法执行部分
for (j = 0; j < a; j++) {
for (i = 0; i < a; i++) {
if (i == left || i == right - 1)
printf("%c", arr[i]);
else
printf("%c", arr2[i]);
}
printf("\n");
left++;//左指针增加
right--;//右指针减少
}
if (j != a)
printf("\n");
}
return 0;
}