chemicalfrequent
01-08-2007, 19:01
Salve a tutti, spero qualcuno possa aiutarmi.
Questo è il codice che ho scritto, per riempire e stampare a video una matrice, ma l'input non funzione. O meglio non capisco cosa non funzioni. Infatti dopo aver inserito tutte le entrate della matrice, quando viene stampata, quello che appare è sempre una matrice nulla. Perchè?
#include <stdio.h>
#include <stdlib.h>
int main(void){
int i, j, n;
double **matrice;
printf("Inserire l'ordine della matrice quadrata.\n");
scanf("%d", &n);
//Allocazione dinamica della matrice
matrice = (double**)calloc(n, sizeof(double*));
for(i = 0; i < n; i++)
matrice[i] = (double*)calloc(n, sizeof(double));
//Input utente
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
scanf("%f", &matrice[i][j]);
//Stampa la matrice
for(i = 0; i < n; i++){
putchar('\n');
for(j = 0; j < n; j++)
printf("%7.1f", a[i][j]);
}
return 0;
}
inoltre se la sostituisco la riga: scanf("%f", &matrice[i][j]);
con l'istruzione: matrice[i][j] = rand() % 19 - 9;
funziona tutto perfettamente e viene stampat la matrice esatta. Dov'è che sbaglio?
Questo è il codice che ho scritto, per riempire e stampare a video una matrice, ma l'input non funzione. O meglio non capisco cosa non funzioni. Infatti dopo aver inserito tutte le entrate della matrice, quando viene stampata, quello che appare è sempre una matrice nulla. Perchè?
#include <stdio.h>
#include <stdlib.h>
int main(void){
int i, j, n;
double **matrice;
printf("Inserire l'ordine della matrice quadrata.\n");
scanf("%d", &n);
//Allocazione dinamica della matrice
matrice = (double**)calloc(n, sizeof(double*));
for(i = 0; i < n; i++)
matrice[i] = (double*)calloc(n, sizeof(double));
//Input utente
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
scanf("%f", &matrice[i][j]);
//Stampa la matrice
for(i = 0; i < n; i++){
putchar('\n');
for(j = 0; j < n; j++)
printf("%7.1f", a[i][j]);
}
return 0;
}
inoltre se la sostituisco la riga: scanf("%f", &matrice[i][j]);
con l'istruzione: matrice[i][j] = rand() % 19 - 9;
funziona tutto perfettamente e viene stampat la matrice esatta. Dov'è che sbaglio?