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;
}
Scusa ma non basta questo codice??
Al massimo aggiungendo un controllo per vedere se una cella è già occupata puoi fare
codice:
#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;
}