私は、理論的には scelta1=1 の場合に、最初に初期化された配列を再割り当てする特定の関数を開く必要があるプログラムを持っています。問題は、プログラムが switch ケースに入ると、scelta1=1 が表示されますが、再割り当てされず、「配列の要素 [1][1] を挿入」「配列の要素 [1][2] を挿入」と表示されるだけです。それらを挿入させてもらいましたが、最初はそうでしたので、問題は機能にないと仮定します。
要約すると、ケース内でループせず、関数が正しいときに配列に新しい番号を挿入する理由を知りたいです。ありがとうございました
これはプログラムです:
#include <stdio.h>
#include <stdlib.h>
#include "matrici.h"
#define N 3
void leggi_matr(int MAT[N][N], int nRighe, int nColonne) // The function
{
int i;
int j;
for (i=0 ; i<nRighe ; i ++)
for (j=0 ; j<nColonne ; j ++)
{
printf("\nInserisci l'elemento [%d][%d] da inserire nella matrice : ", i+1,j+1);
scanf("%d", & MAT[i][j]);
}
}
int A[N][N];
int B[N][N];
int C[N][N];
int main (){
int nRighe = 3;
int nColonne = 3;
int scelta = 1;
char scelta1 = 0;
printf ("Inserimento matrice A\n\n");
leggi_matr(A, nRighe, nColonne);
printf ("\n\nInserimento matrice B\n\n");
leggi_matr(B, nRighe, nColonne);
switch (scelta) /* I know in this case it doesn't need a switch, i need it for
{ another thing */
case 1:
printf ("\n\nDo you want to insert array A or B? ");
scanf ("%c", &scelta1);
if (scelta1 == 'A')
{
leggi_matr(A, nRighe, nColonne);
}
else
{
leggi_matr(B, nRighe, nColonne);
}
break;
}
printf("\n\n\n");
system("PAUSE");
return 0;
}