PDA

Visualizza la versione completa : [C]Codice non funzionante


Haki96
01-05-2014, 23:28
/*Scrivere un programma che fornisca le seguenti funzionalitą.
popolamento array:
l'utente inserisce 10 numeri interi che verranno salvati in un array;
visualizzazione arary: il programma stampa i 10 elementi dell'array ricerca: l'utente inserisce un numero a da cercare.
Il programma restituirą la posizione di a all'interno inserito dell'array. -1 se a non č presente nell'array
Definite una funzione per ciascuna funzionalitą;
Dichiarate l'array con la solita forma a parentesi quadre (int array[10]) ma nelle funzioni usate un puntatore.
Esempio
...
int stampa(int *arr);
...
int main(){
...
int array[10];
int *array_ptr=array;
...
stampa(array_ptr); */

#include<stdio.h>


int popola (severus){
int x;
int val;
int *pos;
*pos=x;


printf("popola array /n");
for(x=0; x<9; x++){
printf("inserisci posizione /t");
scanf("%d",&x);
printf("inserisci valore /t");
scanf("%d",&val);
severus[pos]=val;
}
}


int stampa (severus){
int x;
for (x=0; x<9; x++){
printf("posizione %d : %d " ,x, severus[x]);
printf("/t");
}
}




int cerca (severus){
int x;
int number;
int uscita;
printf("inserisci numero da cercare /t");
scanf("%d",&number);
for(x=0; uscita==0; x++){
if (severus[x]=number) {
printf("posizione valore cercato %d",x);
}
else {}
if (x=9){
printf("il numero non esiste");
}
else {}
}


}


int main (void) {


int rogers[10]=0;
int *p ;
*p=rogers;
printf("array con 10 valori /n");
popola(p);
stampa(p);
cerca(p);
}


L'errore č alla riga 40 sul Severus[x] , penso ci sia un errore a livello concettuale...

oregon
01-05-2014, 23:34
Usa i tag CODE per mostrare il codice ...

Comunque nelle if

if (severus[x]=number) {

(e anche nelle altre ) il confronto si fa con ==

Haki96
01-05-2014, 23:38
Fatto!
Edit: hai ragione , ma non c'č un errore concettuale?

oregon
01-05-2014, 23:50
Ci sono molti errori ...

/t e /n devono essere \t e \n ...

il parametro delle funzioni ti č stato detto che deve essere un puntatore (int *arr) mentre tu usi (severus) che non č un puntatore e non č ha tipo ...

E tanto altro ... in pratica il tuo codice dovrebbe assomigliare a questo



int popola (int *arr)
{
int x;
int val;


printf("popola array\n");


for(x=0; x<10; x++)
{
printf("inserisci valore \t");
scanf("%d", &val);

*(arr+x)=val;
}


return 0;
}




int stampa (int *arr)
{
int x;


for (x=0; x<10; x++)
printf("posizione %d : %d\t" ,x, *(arr+x));

return 0;
}


int cerca (int *arr)
{
int x;
int number;
int trovato=0;


printf("inserisci numero da cercare \t");
scanf("%d",&number);
printf("\n");


for(x=0; x<10; x++)
{
if (*(arr+x)==number)
{
printf("posizione valore cercato %d\n",x);
trovato=1;
}
}

if(trovato==0)
printf("il numero non esiste\n");


return 0;
}




int main (void)
{
int rogers[10];
printf("array con 10 valori \n");
popola(rogers);
stampa(rogers);
cerca(rogers);


return 0;
}

Haki96
01-05-2014, 23:52
Grazie mille!
Si tralascia gli errori /t e via discorrendo li avrei corretti una volta riuscito ad eseguire, ma il mio problema era sull'errore concettuale!
Grazie ancora!

Loading