vuoi
o PayPal
tutte le volte che vuoi
#include <stdlib.h>
#include <stdio.h>
#define RANGE_NUMERI 15 // indica il range (da 1 al numero qui scritto) di numeri che
potrebbero comparire all'interno dei vettori
int main ()
{ int n,i,j,**pt_pt,max,h,mat[RANGE_NUMERI][2],k,flag;
do
{ printf("inserire un numero : ");
// pulizia del buffer di input
fflush(stdin);
i=scanf("%d",&n);
//controllo che la scanf sia andata a buon fine
if(!i)
{ printf("Non hai inserito un numero!\n\n");
n=-1;
//passiamo alla prossima iterazione
continue;
}
if(n<1)
{ printf("il numero inserito non può essere minore di 1\n\n");
}
}
while (n<1);
pt_pt = (int **) malloc(n * sizeof(int *)); //allocazione puntatore di puntatore a int...
per creare poi una matrice dinamica
if(pt_pt == NULL)
{ printf("Non e' stato possibile allocare la memoria!!\n\n");
system("pause");
exit(1);
}
for (i=0;i<n;i++) // allocazione dei vettori che conterranno i numeri
{ pt_pt[i]= (int *) malloc( (i+2) * sizeof(int));
if(pt_pt[i] == NULL)
{ printf("Non e' stato possibile allocare la memoria!!\n\n");
system("pause");
exit(1);
}
}
printf("\n\n");
srand(time(NULL));
for (i=0;i< n ;i++) //riempimento random dei vettori
{ for (j=0;j< i+2 ;j++)
{ pt_pt[i][j] = rand() % RANGE_NUMERI + 1;
}
}
max = pt_pt[0][0];
for (i=0;i<RANGE_NUMERI;i++) //inizializzazione matrice di
appoggio
{ mat[i][0]=0;
mat[i][1]=0;
}
h=0;
for(i=0;i< n ;i++) //stampo il risultato dell'inizializzazione random
{ for (j=0;j< i+2 ;j++)
{ printf(" %3d",pt_pt[i][j]);
}
printf("\n");
}
printf("\n\n");
for (i=0;i< n ;i++)
{ for (j=0;j< i+2 ;j++)
{ if(pt_pt[i][j]>max) //cerco il max
{ max = pt_pt[i][j];
}
// trovo quali numeri sono ripetuti grazie alla matrice di appoggio
if(h==0)
{ mat[h][0]=pt_pt[i][j];
mat[h][1]++;
h++;
}
else
{ flag=0;
for (k=0;k<h;k++)
{ if(mat[k][0]==pt_pt[i][j])
{ mat[k][1]++;
flag=1;
}
}
if (flag==0)
{ mat[h][0]=pt_pt[i][j];