Scusa ma non basta questo codice??codice:#include <stdio.h> #include <stdlib.h> #include <time.h> #define S 10 #define K 15 typedef struct indici { int primo; int secondo; } indici; void printMatrix(int matrix[S][K]){ int i,j; for(i=0;i<S;i++){ for(j=0;j<K;j++){ printf("%d ",matrix[i][j]); } printf("\n"); } } indici insertMatrix(int matrix[S][K],int rand1,int rand2){ indici z; matrix[rand1][rand2] = 1; z.primo = rand1; z.secondo = rand2; return z; } int main () { srand((unsigned)time(NULL)); indici z; int mat[S][K]; int i,j; for(i=0;i<S;i++){ for(j=0;j<K;j++){ mat[i][j]=0; printf("%d ",mat[i][j]); } printf("\n"); } int n1,n2,count=0; do{ n1 = rand() % S; n2 = rand() % K; printf("\nNumeri Random: %d %d\n",n1,n2); z=insertMatrix(mat,n1,n2); printf("Matrice:\n"); printMatrix(mat); printf("Indici Funzione: %d %d\n",z.primo,z.secondo); count++; }while(count<15); return 0; }
Al massimo aggiungendo un controllo per vedere se una cella è già occupata puoi farecodice:#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <time.h> #define S 10 #define K 15 typedef struct indici { int primo; int secondo; } indici; bool checkFree(int matrix[S][K], int x, int y) { return !matrix[x][y]; } void printMatrix(int matrix[S][K]){ int i,j; for(i=0;i<S;i++){ for(j=0;j<K;j++){ printf("%d ",matrix[i][j]); } printf("\n"); } } indici insertMatrix(int matrix[S][K],int rand1,int rand2){ indici z; matrix[rand1][rand2] = 1; z.primo = rand1; z.secondo = rand2; return z; } int main () { srand((unsigned)time(NULL)); indici z; int mat[S][K]; int i,j; for(i=0;i<S;i++){ for(j=0;j<K;j++){ mat[i][j]=0; printf("%d ",mat[i][j]); } printf("\n"); } int n1,n2,count=0; do{ n1 = rand() % S; n2 = rand() % K; if(!checkFree(mat, n1, n2)) continue; printf("\nNumeri Random: %d %d\n",n1,n2); z=insertMatrix(mat,n1,n2); printf("Matrice:\n"); printMatrix(mat); printf("Indici Funzione: %d %d\n",z.primo,z.secondo); count++; }while(count<15); return 0; }

Rispondi quotando