Salve a tutti sono nuovo del forum, sono uno studente di informatica alle prime armi con C.
Sto scrivendo un piccolo algoritmo di ricerca, e quando passo la key e il vettore in cui cercare alla funzione, succede una cosa strana:
la funzione mi stampa (solo per verifica passaggio) il vettore con l'ultimo elemento sostituito dalla key!!
come è possibile?
il codice e' questo:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define AR 10
int cerca(int k, int a[AR]) {
int i, mezzo;
mezzo = (AR/2);
for (i=0 ; i<=AR ; i++) { printf("%3d", a[i]); }
printf("\n%d\n", k); /* controllo array interno funzione cerca */
printf("%2d", a[10]);
.
. /*algoritmo ricerca*/
.
return 0; } /* per ora non restituisce niente */
int main() {
int i, j, temp, key, arrayO[AR];
srand( time(NULL) );
for (i=0 ; i<=AR ; i++) { /* generazione casuale */
arrayO[i] = rand() % (99) + 1 ;
}
for (i=0 ; i<=(AR-1) ; i++) {
for (j=i+1 ; j<=AR ; j++) {
if (arrayO[i] > arrayO[j]) {
temp = arrayO[j]; /* ordinamento array */
arrayO[j] = arrayO[i];
arrayO[i] = temp;
}
}
}
for (i=0 ; i<=AR ; i++) { printf("%3d", arrayO[i]); }
printf("\n\n"); /* controllo array interno al main */
printf("\n\nInserisci numero da cercare: ");
scanf("%d", &key);
cerca(key, arrayO); /* chiamata funzione */
return 0;
}