发布网友
共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]
热心网友
第二维明显是五个字符结果赋值有六个的...所以说多了..