Problema con il funzionamento di un sottoprogramma

di
Anonimizzato19023
il
6 risposte

Problema con il funzionamento di un sottoprogramma

Salve a tutti ragazzi sto cercando di creare un menù dinamico con vari sottoprogrammi che effettuano operazioni su un'array monodimensionale (come inserimento, stampa , ordinamento...), tutto questo utilizzando lo switch. Quando eseguo il programma e digito la lettera 'a' che corrisponde al riempimento dell'array fin qui tutto ok, dopo di che quando ritorno sul menù e digito la terra 'b' per stampare l'array, non viene eseguita nessuna funzione. Come posso risolvere questo problema ?
Ecco il codice:

#include<stdio.h>
#include<stdlib.h>
#define card 10



void inserisci(int Vet[card],int riemp);
void stampavettore(int Vet[card],int riemp);


main()


{

int Vet[card],i,riemp;
int esci;
char carattere, torna;

do{
fflush(stdin);
printf("\tMENU' OPERAZIONI\n\n");
printf("quali operazioni vuoi effettuare sull'array Vet'?\n\n");
printf("se desideri riempire lo array premere a\n");
printf("se desideri stampare lo array riempito premere b\n");
printf("se desideri uscire premere c\n");
scanf("%c",&carattere);

switch(carattere){
case 'a': inserisci(Vet,riemp);system("cls");break;
case 'b': stampavettore(Vet,riemp);break;
case 'c': esci=1; break;}

fflush(stdin);
printf("Si desidera tornare al Menu' Principale?\n");
printf("digita qualsiasi tasto per ritornare al menu' \n");
printf("digita 'n' se desideri uscire \n");
scanf("%c",&torna);

}
while (torna!='n');

system("Pause");

}

void inserisci(int Vet[card],int riemp){
int i;
do{ printf("quanti elementi vuoi inserire\n");
scanf("%d",&riemp);}
while(riemp>card);
for(i=0;i<riemp;i++){
printf("immetti valore in Vet(%d)",i);
scanf("%d",&Vet);}
}

void stampavettore(int Vet[card],int riemp){
int i;
for(i=0;i<riemp;i++){
printf("%d",Vet);}
}

6 Risposte

  • Re: Problema con il funzionamento di un sottoprogramma

    Quanto vale la variabile riemp???

    Non è nemmeno corretta la funzione di riempimento.

    Attento a che cosa passi ad una funzione.

    Prova a correggere e passare variabili che abbiano un valore altrimenti il programma ha un comportamento impredicibile.


    P.s. Inserisci i tag code al codice
  • Re: Problema con il funzionamento di un sottoprogramma

    Penso il problema sia dovuto al fatto che passi la variabile riemp per valore e non per riferimento. Nella definizione della funzione usa int* riemp e quando lo passi alla funzione dagli l'indirizzo con l'operatore &riemp.
  • Re: Problema con il funzionamento di un sottoprogramma

    Grazie mille per il consiglio , ho modificato i parametri della funzione "inserisci" e la variabile "riemp" l'ho passata per riferimento , adesso stampa tranquillamente l'array riempito in precedenza .
    Ma non ho capito cos'è il tag code ?
  • Re: Problema con il funzionamento di un sottoprogramma

    Se utilizzi i tag code ovvero [ code] .... [ /code] senza gli spazi iniziali dopo la prima parentesi quadra,
    vedrai questo:
    
    Qui scrivo il mio codice
    possibilmente indentato
    così facilito la lettura dello stesso.
    
  • Re: Problema con il funzionamento di un sottoprogramma

    Ok la prossima volta userò il tag code
  • Re: Problema con il funzionamento di un sottoprogramma

    stephen_95 ha scritto:


    ok la prossima volta userò il tag code
    Direi che puoi modificare il post e usarli sin da ora ...
Devi accedere o registrarti per scrivere nel forum
6 risposte