发生了如图的报错 提示14 17行有问题
原因在于
arr[i] = { '*' }; 来初始化一个特定元素的字符数组。大括号语法 {} 通常用于初始化整个数组,而不是单个元素
应改为arr[i] = '*'
然后发现不报错 程序可以执行
附赠 打印X代码
//定义变量部分inta;//用户输入的数字chararr[20] = { };//数组chararr2[20] = { };//数组inti, j;//循环所用intleft, right;//左右指针intmain() { 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]); elseprintf("%c", arr2[i]); } printf("\n"); left++;//左指针增加right--;//右指针减少 } if (j!=a) printf("\n"); } return0; }