我有一个程序,理论上应该在 scelta1=1 的情况下打开某个函数,该函数重新分配一个最初初始化的数组。问题是,程序进入开关盒,看到 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;
}