为什么要在C语言中更改2d数组的值?

时间:2018-06-11 15:21:17

标签: c arrays 2d

这是我的简单代码

TNotifyEvent

最后接受这个

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
    int row = 2,col = 5;

    //This my word array with new line character and ABCDE and FGHIJ
    char hello[] = "ABCDE\nFGHIJ\n";


    //Here i put these letters into 2d char array and print end print each elements
    char grid[col][row];
    int count = 0;
    for(int i = 0; i<row;i++){
        for(int j = 0; j<col;){
            if(hello[count] != '\n'){
                grid[i][j] = hello[count];          
                printf("%c ",grid[i][j]);
                j++;                
            }
            count++;    
        }
        printf("\n");
    }
    puts("--------------------------------");


    //Here i print each elements again
    for(int p = 0; p<row;p++){
        for(int q = 0; q<col;q++){
            printf("%c ",grid[p][q]);
        }
        printf("\n");
    }
    return 0;
}

但结果是

ABCDE
FGHIJ

这种现象的原因是什么?我的意图是将每个字母放入网格2d char数组中。但是在我打印出每个元素后,它显示错误。

1 个答案:

答案 0 :(得分:0)

你应该在if块中增加count变量。