Salve, io avrei dei problemi a fare questo programma dove devo avere una matrice quadratica che deve avere grandezza da 3 a 20. Poi devo inserire dei valori randomici nella matrice che vanno da 1 a 10000 , 1 e 10000 compresi. Dopo aver inserito i valori devo inserire un valore in input e vedere se quel valore c'è nella matrice ma devo fare un controllo diagonale e non sequenziale. es. abbiamo una matrice[3][3], controllo prima la posizione[2][0], poi [1][0], poi[2][1], poi[0][0], ecc. ma il problema è che mi da posizioni sui milioni. Questo è il programma che ho fatto:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
int main () {
int i, n, y, x, num, nv;
srand(time(NULL));
printf(" Inserire grandezza matrice ");
scanf("%d",&n);
int matrice [n][n];
for (y=0;y<n;y++) {
for (x=0;x<n;x++) {
matrice[y][x]=rand() %10001;
}
}
for (y=0;y<n;y++) {
for (x=0;x<n;x++) {
printf(" %d",matrice[y][x]);
}
}
printf("\n" " Inserire valore da trovare ");
scanf(" %d",&num);
y=0;
x=0;
for (i=1;i<n+1;i++) {
x=0;
for (y=n-i;y>-1;y--) {
if(matrice[y][x]==num)
{
printf("\n""%c" " valore trovato in posizione ");
printf(" %d", &y);
printf(" %d", &x);
}
else{
printf("\n"" valore non trovato ");
}
x++;
}
}
for (i=0;i<n;i++) {
y=0;
for (x=1;x<n;x++) {
if(matrice[y][x]==num)
{
printf("\n""%c" " valore trovato in posizione ");
printf(" %d", &y);
printf(" %d", &x);
}
else{
printf("\n"" valore non trovato ");
}
y++;
}
}
}
E questi sono i valori che ottengo:
Inserire grandezza matrice 3
2445 134 3586 7312 5291 5709 6948 9565 187
Inserire valore da trovare 134
valore non trovato
valore non trovato
valore non trovato
valore non trovato
valore trovato in posizione 804237488 804237492
valore non trovato
valore trovato in posizione 804237488 804237492
valore non trovato
valore trovato in posizione 804237488 804237492
valore non trovato
valore trovato in posizione 804237488 804237492
valore non trovato
Grazie in anticipo.