为什么初始化这个二维字符数组后输出这个数组的某一项却输出了后面的所有字符?
4条回答 默认 最新
报告相同问题?
提交
相关推荐 更多相似问题
- 2019-11-13 16:26回答 4 已采纳 内存给二维数组分配地址空间时是连续的,但是C语言里对字符数组是不检查长度的,读取遇到\0才会认为是一个数组,存放两个字符需要三个char大小的地址空间,最后一个地址空间存\0, 你这里存放两个字符他
- 2021-10-28 23:08回答 2 已采纳 因为输入的内容中包含换行符,用scanf("%c",&a[i][j]);会读取换行符。要用 getchar();把每个行的换行符跳过你题目的解答代码如下: #include <stdio.h&g
- 2020-04-14 22:27回答 1 已采纳 因为这个二维数组的地址是连着的,然后把3位都用了,就没有地方存\0了,所以会约等于char city[18] 可以改成 ``` char city[6][4]; memset(city,0,s
- 2022-05-18 14:29回答 1 已采纳 下面是一个实现,供参考: #include <stdio.h> int main(void){ char fruit[5][7]={"Apple","Orange",
- 2021-05-16 17:02回答 4 已采纳 scanf("%s",c[i]); 改成scanf("%s",&c[i]); 你没有对输入的数据取地址会报错
- 2021-12-13 09:33回答 1 已采纳 #include "stdio.h" int main(){ int a[3][4]; int i,j; for(i=0;i<3;i++){ scan
- 2021-08-20 10:50回答 3 已采纳 num[1][0],首先要知道数组起始索引是0,所以 num[1] = {4,5,6},num[1][0] 就是 {4,5,6} 中的第一个元素 4
- 2021-02-13 12:16回答 1 已采纳 sizeof()的返回值是long unsigned int。这样定义的原因是任何一个变量的size不可能是负数,所以用unsigned扩充数据范围。 想要修改这个bug,只需要这样做: #in
- 2020-04-23 13:15回答 1 已采纳 fuse_layers[i][0] 应该是一个函数或方法,括号是对对应函数的调用,括号里边是参数
- 2020-05-22 19:49回答 3 已采纳 首先,需要定义一个与列数相等长度的数组,存储最终每一列的大小。 其次遍历每一列数据,找最大值,算法思路: ``` 求某一列最大值 for(int i=0;imax max = a[i]
- 没有解决我的问题, 去提问