C语言error!!!too many initializers怎么回事

发布网友

我来回答

5个回答

热心网友

char存的是单个的字符,char[5]表示只能存5个字符。另外%c表示单个字符输出。char a[9][5]表示九行五列而且不存在a[9][5]。char b[2][2]表示存在b[0][0],b[0][1],b[1][0],b[1][1]。好好看看数组概念以及相关的运用。
#include <stdio.h>
int main()
{
int i,j;
char a[9][5]={
{'*','*','*','*','*'}
,{' ','*','*','*','*'}
,{' ',' ','*','*','*'}
,{' ',' ',' ','*','*'}
,{' ',' ',' ',' ','*'}
,{' ',' ',' ',' ','*'}
,{' ',' ',' ',' ','*'}
,{' ',' ',' ',' ','*'}
,{' ',' ',' ',' ','*'}
};
for(i=0;i<9;i++){
for(j=0;j<5;j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}

return 0;
}
这是我改过后的,你看看,可能不是你想的那样,至少能给你一些参考。

热心网友

下面几个定义因为你用的是存储多个字符串,因此需要修改成二维数组
char
ge[10][10]=
{'',
'i',
"ii",
"iii",
"iv",
'v',
"vi",
"vii",
"viii",
"ix"};
char
shi[10][10]=
{'',
'x',
"xx",
"xxx",
"xl",
'l',
"lx",
"lxx",
"lxxx",
"xc"};
char
[10][10]=
{'',
'c',
"cc",
"ccc",
"cd",
'd',
"dc",
"dcc",
"dccc",
"cm"};
char
qian[4][10]={'','m',"mm","mmm"};
后面那个我帮你写的10,其实应该是最长的字符串长度加1

热心网友

好久没碰c语言。。至少你数组越界了追问怎么越界??

追答初始化的时候把a[9][5]改成a[5][9]。还有printf("%c",a[9][5])?也有问题。你能看出来的

热心网友

数组越界,把a[9][5]改成a[5][9]

热心网友

第二维明显是五个字符结果赋值有六个的...所以说多了..

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com