Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C] Problema con vettore

    Salve a tutti, sono nuovo del forum nonché neofita programmatore (si fa perdire _:P) in C.. Ciò che vorrei proporvi come argomento di discussione è questo: ho creato un programma che acquisisce un vettore di 10 elementi e che stampa a video il minimo, il massimo e la media.. Fin qui tutto ok. Ciò che non riesco a risolvere, invece, è il problema che mi crea il printf() che vorrei inserire in output_vet (per raggruppare tutti i printf() in un'unica sottofunzione) perché, come vedrete, la sottofunzione max_min ritorna due valori e non saprei come indicare all'output di stampare due valori diversi dalla stessa sottofunzione. Sarebbe meglio usare puntatori?

    codice:
    #include <stdio.h>
    #include <conio.h>
    #define MAX 10
    
    void input_vet (int v[], int dim);
    int max_min (int v[], int dim);
    float med (int v[], int dim);
    void output_vet (int v[]);
    
    main()
    {
     _ _ _int v[MAX];
     _ _ _input_vet(v, MAX);
     _ _ _max_min(v, MAX);
     _ _ _med(v, MAX);
     _ _ _output_vet(v);
    }
    
    void input_vet(int v[], int dim)
    { 
     _ _ _int i;
     _ _ _for(i=0;i<dim; i++)
     _ _ _{
     _ _ _ _ _printf ("Elemento %d del vettore: ", i);
     _ _ _ _ _scanf ("%d", &v[i]);
     _ _ _}
    }
    
    
    int max_min (int v[], int dim)
    {
     _ _ int i, max, min;
     _ _ _max=min=v[0];
     _ _ _for (i=0; i<dim; i++)
     _ _ _{
     _ _ _ _ _ _if (v[i]>max) max=v[i];
     _ _ _ _ _ _if (v[i]<min) min=v[i];
     _ _ _}
    printf ("\nIl valore MASSIMO e': %d\n", max); _ _//Vorrei inserire questi due printf direttamente
    printf ("Il valore MINIMO e': %d\n", min); _ _ _ _ _//in output, ma come fare per tornare due valori?
    }
    
    
    float med (int v[], int dim)
    {
     _ _int i, somma=0;
     _ _float media;
     _ _for (i=0; i<dim; i++) 
     _ _{
     _ _ _ _somma+=v[i];
     _ _}
    media=(float)somma/dim;
    return media;
    }
    // OUTPUT
    void output_vet (int v[])
    {
     _ _ _printf ("Il valore della media e': %2.3f\n", med (v, MAX));
     _ _ __getch();
    }

    Vi ringrazio in anticipo!
    http://premiatinavigando.weebly.com/

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Non è il tuo forte spiegarti ...

    Qual è il problema esattamente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    Re: [C] Problema con vettore

    Originariamente inviato da robe92
    la sottofunzione max_min ritorna due valori e non saprei come indicare all'output di stampare due valori diversi dalla stessa sottofunzione. Sarebbe meglio usare puntatori?
    codice:
    max_min(v, MAX);
    int max_min (int v[], int dim)
    {
    }
    Sì, non potendo restituire due valori, devi passare due puntatori che la funzione utilizzerà per il minimo e il massimo.

    Qualcosa come:
    codice:
    int min, max;
    
    max_min(v, MAX, &min, &max);
    
    void max_min(int v[], int dim, int *min, int *max)
    {
        *min = ...;
        *max = ...;
    }

  4. #4
    mentre per quanto riguarda l'acquisizione di elementi interi da tastiera in una matrice (di dimensione non definita) dei quali l'elemento nullo interrompe l'acquisizione e non viene considerato come potrei organizzarmi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.