Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2015
    Messaggi
    18

    massimo e minimo di un array, linguaggio C.

    Salve a tutti, devo scrivere un programma che stampi il massimo e il minimo di un array (inserito dall'utente) attraverso l'uso dei sottoprogrammi.
    Non so per quale motivo, in output mi escono valori (massimo e minimo) completamente differenti da quelli corretti. Qualcuno saprebbe dirmi cosa sbaglio?
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    
    
    void Caricamento(int vet[10])
    {
        int i;
        for (i=0; i<10; i++)
        {
            printf ("Elemento %d: ", i+1);
            scanf ("%d", &vet[i]);
        }
    }
    
    
    int Min(int vet[10])
    {
        int min, i;
        vet[0]=min;
        for (i=1; i<10; i++)
        {
            if (vet[i]<min)
                min=vet[i];
        }
        return min;
    }
    
    
    int Max(int vet[10])
    {
        int max, i;
        vet[0]=max;
        for (i=1; i<10; i++)
        {
            if (vet[i]>max)
                max=vet[i];
        }    
        return max;
    }
    
    
    void Stampa(int vet[10])
    {
        int i;
        printf ("\n\n");
        for (i=0; i<10; i++)
            printf ("%d\t", vet[i]);
        printf ("\n\n");
    }
    
    
    int main ()
    {
        int v[10];
        Caricamento(v);
        Stampa(v);
        printf ("Massimo: %d\n\n", Max(v));
        printf ("Minimo: %d\n\n", Min(v));
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Non ho letto tutto il codice, ma sia nella funzione Min, che nella funzione Max hai commesso un errore: invece di inizializzare le variabili min e max con il primo elemento dell'array, hai sovrascritto il primo elemento dell'array con il valore (non inizializzato) di min e di max. Riporto l'errore nella funzione Min, ma è del tutto analogo anche nella funzione Max.

    codice:
    int Min(int vet[10])
    {
        int min, i;
        vet[0]=min;   // <<<< ERRORE !!!
        for (i=1; i<10; i++)
        {
            if (vet[i]<min)
                min=vet[i];
        }
        return min;
    }


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.