Зачем менять значения 2d Array на языке C? - PullRequest
0 голосов
/ 11 июня 2018

Вот этот мой простой код

#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

Но результат равен

ABFGH
FGHIJ

В чем причина этого явления.Мое намерение состоит в том, чтобы поместить каждую букву в массив 2d char.Но после того, как я напечатал каждый элемент внутри, он показывает неправильно.

1 Ответ

0 голосов
/ 11 июня 2018

Вы должны увеличить переменную count в блоке if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...