Хорошо, во-первых, это то, что я собираюсь сделать. Это 12 столбцов и 15 строк, поэтому длина строки составляет 12
Enter the line 1 of the puzzle:XTZMQYKCECFH---->12 chars
Enter the line 2 of the puzzle:SHOUTEXOEAPI
Enter the line 3 of the puzzle:XGTLQBELTNFK
'
'
'
Enter the line 15 of the puzzle:
Итак, я перевожу ввод к другой забаве c, чтобы напечатать матрица и должна выглядеть следующим образом:
X T Z M Q Y K C E C F H
S H O U T E X O E A P I
X G T L Q B E L T N F K
'''
'''
'''
Итак, вот код, но я не думаю, что он будет работать с scanf, может быть, я должен использовать gets ()? Я думал о том, чтобы просто взять строку, сохранить ее в другом массиве и затем перенести в матрицу. Пожалуйста, постарайтесь не использовать никакую другую библиотеку, кроме stdio.h, потому что задача состоит в том, чтобы сделать это, не используя предустановленные строковые функции
#include <stdio.h>
#define COLUNM 12
#define ROW 15
void printPuzzle(char matrix[ROW][COLUNM]){
int i,j;
for (i=0;i<ROW;i++){
for(j=0;j<COLUNM;j++){
printf("\n");
printf("%3c",matrix[i][j]); }
}
}
int main (){
int i,j;
j=0;
char matrix[ROW][COLUNM];
for(i = 1 ; i < COLUNM+1 ; i++){
printf("Enter line %d of the puzzle :\n",i);
scanf("%s",matrix[j][i]);
j++;
}
printPuzzle(matrix[ROW][COLUNM]);
return 0;
}
Я также подумал об этом для основного удовольствия c:
int main (){
int i,j;
char line[COLUNM+1];
char matrix[ROW][COLUNM];
for(i = 0 ; i < ROW ; i++){
printf("Enter line %d of the puzzle :\n",i+1);
scanf("%s",line[i]);
for(j=0;j<COLUNM;j++){
matrix[i][j]=line[j];
}
}
printPuzzle(matrix[ROW][COLUNM]);
return 0;
}
Но я продолжаю получать эти предупреждения 30 | printPuzzle (матрица [ROW] [COLUNM]); предупреждение: передача аргумента 1 в printPuzzle делает указатель из целого числа без приведения
. c: 5: 23: note: ожидаемое 'char (*) [12]', но аргумент имеет тип 'char '5 | void printPuzzle (символьная матрица [ROW] [COLUNM]) {
Не знаю много о c, может кто-нибудь объяснить простым языком Engli sh