Как напечатать элементы двумерного массива символов в C?C - Печать двумерного массива символов
Вот мой текущий код:
int main()
{
unsigned int size;
printf("Enter size:\n");
scanf("%d",&size);
char word[size][size];
//Enter the matrix
for(int k = 0; k < (size); ++k){
for (int j = 0; j < (size); ++j){
printf("Enter letter:");
scanf("%c",&word[k][j]);
}
}
//printf("\n");
for (int k = 0; k < size; ++k){
for(int j = 0; j < size; ++j){
printf("%c",word[k][j]);
}
//printf("\n ");
}
printf("\n");
}
При выполнении он возвращает элемент в пар (с использованием 4x4 массив) Пример:
ab
cd
ef
gh
ij
kl
mn
op
Вместо того, чтобы мой желаемый результат:
abcd
efgh
ijkl
mnop
Почему это?
Добро пожаловать в переполнение стека! Похоже, вам, возможно, потребуется научиться использовать отладчик для выполнения вашего кода.С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/). –
Вы явно не печатаете новые строки до самого конца, поэтому остальные из них, вероятно, поступают с вашего ввода. Вы вводите все значения в одной строке перед нажатием клавиши ввода? Если нет, то 'scanf' будет хранить символы новой строки в' word'. –
использовать спецификатор формата% u для unsigned int –