Ho risolto così:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <time.h>
void creamatrice(float **M, int COLUMNS, int ROWS);
void StampMatrix(float **M, int COLUMNS, int ROWS);
void InserisciDaTastiera(char *stringa, int Max);
float RandomFloat();
main()
{
float **M;
char *col, *row;
char c;
int COLUMNS, ROWS, i;
printf("Inserisci il numero di righe:\n");
scanf("%d", &ROWS);
printf("NUM RIGHE: %d\n", ROWS);
printf("Inserisci il numero di colonne:\n");
scanf("%d", &COLUMNS);
printf("NUM COLONNE: %d\n", COLUMNS);
M = (float**)calloc(ROWS,sizeof(float*));
for (i=0; i<ROWS; i++)
M[i] = (float*)calloc(COLUMNS,sizeof(float));
creamatrice(M, COLUMNS, ROWS);
StampMatrix(M, COLUMNS, ROWS);
system("PAUSE");
}
void creamatrice(float **M, int COLUMNS, int ROWS){
int j, k;
for (k=0; k<ROWS; k++)
{
for (j=0; j<COLUMNS; j++)
{
M[k][j]=RandomFloat();
}
}
}
/*==========================================
* Function per stampare una matrice
*========================================*/
void StampMatrix(float **M, int COLUMNS, int ROWS)
{
int i, j;
for ( i=0; i < ROWS; i++ )
{
printf("%d", i);
for ( j=0; j < COLUMNS; j++ )
{
printf(" | %f", M[i][j]);
}
}
}
/* =============================================
** Function per leggere una stringa di caratteri
** da tastiera
** ---------------------------------------------*/
void InserisciDaTastiera(char *stringa, int Max)
{
int i;
fgets(stringa, Max, stdin);
for ( i=0; stringa[i] < 0 || stringa[i] > 31; i++);
stringa[i]=0;
fflush(stdin);
}
float RandomFloat()
{
float num = (float)(rand()%30) + (float)rand() / (float)RAND_MAX;
return num;
}
Anche se vorrei sostituire gli scanf, come posso fare?