文字列の行列を持っています。これを初期化し、その値をユーザー入力である値に変更します。私の知る限り、この値をTe行列(コードの最後の行)に追加しようとすると、私のコードはすべてOKです。ここにある:あなたがinserir()
を機能させるmatriz[MAX_LINHAS][MAX_COLUNAS]
を渡すことはできませんCの2次元配列(行列)内の文字列を変更する
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#define MAX_LINHAS 20
#define MAX_COLUNAS 10
void iniciarMatriz(char matriz[MAX_LINHAS][MAX_COLUNAS]);
void mostraMatriz(char matriz[MAX_LINHAS][MAX_COLUNAS]);
void inserir(char matriz[MAX_LINHAS][MAX_COLUNAS]);
void main(void) {
char matriz[MAX_LINHAS][MAX_COLUNAS];
iniciarMatriz(matriz);
//mostraMatriz(matriz);
inserir(matriz[MAX_LINHAS][MAX_COLUNAS]);
mostraMatriz(matriz);
}
void iniciarMatriz(char matriz[MAX_LINHAS][MAX_COLUNAS]) {
int i;//linhas
int j;//colunas
for (i = 0; i < MAX_LINHAS; i++) {
for (j = 0; j < MAX_COLUNAS; j++) {
matriz[i][j] = 0;
}
}
}
void mostraMatriz(char matriz[MAX_LINHAS][MAX_COLUNAS]) {
int i;
int j;
for (i = 0; i < MAX_LINHAS; i++) { //linhas
for (j = 0; j < MAX_COLUNAS; j++) { //colunas
printf("%i \t", matriz[i][j]);
}
printf("\n");
}
}
void inserir(char matriz[MAX_LINHAS][MAX_COLUNAS]) {
char nome[10];
int linha;
int coluna;
printf("Insira a string: \n");
scanf("%s", nome);
printf("Em que linha ?\n");
scanf("%i", &linha);
printf("Em que coluna ?\n");
scanf("%i", &coluna);
matriz[linha][coluna] = nome;
}
文字マトリックスです!行列セルに文字列全体を挿入することはできません。そして、サンプルの入力と予想される出力を投稿して、問題の理解を深めてください。 –
どうすればいいですか?入力は10文字以下の文字列になります。私はコードの最後の行のおかげでプログラムがクラッシュするので、出力を得ることはできません。 –
サンプル入力と予想される出力を投稿してください。問題がどこにあるのか把握し、それに応じてコードを修正しようとします。 –