Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255

    Programmino x rilevare max e min

    sono alle prime armi e cercavo di fare un programmino x rilevare il max e il min tra un insieme di numeri.chi mi aiuta ad eseguirlo?

    #include <stdio.h>
    int imax(max,min);
    void main()
    {
    int max,min,numero;
    max=numero,
    min=numero,
    printf("digita il numero max\n");
    scanf("%d",&max);
    printf("digita il numero min\n");
    scanf("%d",&min);
    }
    if {
    numero > max
    max=numero
    else numero < min
    min=numero
    }

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Devi memorizzarli in un vettore che allochi tu.
    Ecco un esempio in C:

    codice:
    #include <stdlib.h>
    #include <stdio.h>
    
    void main()
    {
    int numelem;
    int *dati,min,max;
    
    printf("Numero elementi? ");
    scanf("%d",&numelem);
    
    // alloca la memoria
    dati = (int *) malloc(numelem * sizeof(int));
    if(!dati) { printf("Poca memoria.");exit(1))
    
    //chiede i dati
    int elem=0;
    printf("Nuovo elemento: ");
    scanf("%d", &dati[elem]);
    //inizializza min e max
    min=max=dati[elem];
    for(elem = 1; elem<numelem - 1; elem++) {
        printf("Nuovo elemento: ");
        scanf("%d", &dati[elem]);
    }
    
    // Trova min e max
    for(elem=0;elem<numelem-1; elem++) {
        if(max<dati[elem]) max = dati[elem];
        else if(min>dati[elem]) min=dati[elem];
    }
    
    // visualizza i risultati
    prinf("Minimo: %d\nMassimo: %d", min, max);
    }
    Questo è il codice.
    Ora comincia con gli errori e le domande.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    #include <stdlib.h>
    #include <stdio.h>

    void main()
    {
    int numelem;
    int *dati,min,max,elem;

    printf("Numero elementi? ");
    scanf("%d",&numelem);

    // alloca la memoria
    dati = (int *) malloc(numelem * sizeof(int));
    if(!dati) { printf("Poca memoria.");exit(1)

    //chiede i dati
    int elem=0;
    printf("Nuovo elemento: ");
    scanf("%d", &dati[elem=0]);
    //inizializza min e max
    min=max=dati[elem];
    for(elem = 1; elem<numelem - 1; elem++) {
    printf("Nuovo elemento: ");
    scanf("%d", &dati[elem]);
    }

    // Trova min e max
    for(elem=0;elem<numelem-1; elem++) {
    if(max<dati[elem]) max = dati[elem];
    else if(min>dati[elem]) min=dati[elem];
    }

    // visualizza i risultati
    printf("Minimo: %d\nMassimo: %d", min, max);
    }
    }



    Inanzitutto grazie
    Il programmino non funziona ancora!c'è un errore
    sulla 17riga!
    Poi hai detto ke ti poso fare alcune domande allora ne approfitto:

    *dati = * ke funzine ha questo asterisco?
    se puoi vorrei capire meglio quel passaggio in cui alloca la memoria

    poi un consiglio.....con i cicli ne so molto poco dove posso informarmi meglio

  4. #4
    Utente di HTML.it L'avatar di pdpmpd
    Registrato dal
    Jan 2003
    Messaggi
    448
    alla 14^ riga manca il ; dopo exit(1)
    e il blocco dell'if non è chiuso dalla graffa.
    Drug misuse is not a disease, it is a decision, like the decision to step out in front of a moving car. [...] In this particular life-style the motto is "be happy now because tomorrow you are dying", but the dying begins almost at once, and the happiness is a memory.

  5. #5
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Il * significe che stai usando un puntatore.
    Su questo argomento c'è una discussione di poco tempo fa.

    Per quanto riguarda malloc, lui alloca il numero di byte di memoria che viene passato per parametro.
    Restituisce il puntatore all'area di memoria se ha successo, altrimenti 0.

    I cicli sono facili da imparare, li puoi anche chiedere sul forum.

  6. #6
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Non mi sembra il caso di fargli casini in testa con puntatori e memoria dinamica se ha appena cominciato...

    s_p_81 i vettori per ora dichiarali cosi: tipo nome[dimensione]
    esempio: int myArray[10]

    gli elementi vanno da 0 a 9

    puoi scorrerli tutti con una cosa cosi:

    int i, myArray[10];
    for(i = 0; i < 10; i++)
    myArray[i] = blablabla


    Per ora nn farti problemi coi puntatori e l'allocazione dinamica
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  7. #7
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Ha chiesto un numero variabile di elementi...
    Se le va a cercare...
    era l'unico modo di rispondergli.

  8. #8
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    hai ragione anche te
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    ragazzi nn funziona:


    #include <stdlib.h>
    #include <stdio.h>

    void main()
    {
    int numelem;
    int *dati,min,max,elem;

    printf("Numero elementi? ");
    scanf("%d",&numelem);

    // alloca la memoria
    dati = (int *) malloc(numelem * sizeof(int));
    if(!dati)
    {
    printf("Poca memoria.");exit(1);

    //chiede i dati
    int elem=0;
    printf("Nuovo elemento: ");
    scanf("%d", &dati[elem=0]);
    //inizializza min e max
    min=max=dati[elem];
    for(elem = 1; elem<numelem - 1; elem++) {
    printf("Nuovo elemento: ");
    scanf("%d", &dati[elem]);
    }

    // Trova min e max
    for(elem=0;elem<numelem-1; elem++) {
    if(max<dati[elem]) max = dati[elem];
    else if(min>dati[elem]) min=dati[elem];
    }

    // visualizza i risultati
    printf("Minimo: %d\nMassimo: %d", min, max);
    }
    }

  10. #10
    Orig. inviato da s_p_81
    codice:
    ragazzi nn funziona:
    
    
    #include <stdlib.h>
    #include <stdio.h>
    
    void main()
    {
        int numelem;
        int *dati,min,max,elem;
    
        printf("Numero elementi? ");
        scanf("%d",&numelem);
    
        // alloca la memoria
        dati = (int *) malloc(numelem * sizeof(int));
        if(!dati) 
        { 
            printf("Poca memoria.");
            exit(1);
        } // <-- mancava questa, altrimenti il codice non avrebbe senso!
    
        //chiede i dati
        int elem=0;
        printf("Nuovo elemento: ");
        scanf("%d", &dati[elem=0]);
        //inizializza min e max
        min=max=dati[elem];
        for(elem = 1; elem<numelem - 1; elem++) 
        {
            printf("Nuovo elemento: ");
            scanf("%d", &dati[elem]);
        }
    
        // Trova min e max
        for(elem=0;elem<numelem-1; elem++) 
        {
            if(max<dati[elem]) 
                max = dati[elem];
            else if(min>dati[elem]) 
                min=dati[elem];
        }
    
        // visualizza i risultati
        printf("Minimo: %d\nMassimo: %d", min, max);
    
    }
    
    } // <-- questa è di troppo
    p.s. non so se ora funziona, mi sono limitato soltanto a
    ordinare (indentare) il codice. Ora se non altro è leggibile.

    N.B. per formattare il codice, inseriscilo tra i tag
    [CO DE] e [/CO DE] senza gli spazi tra "co" e "de"
    ...Terrible warlords, good warlords, and an english song

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 © 2025 vBulletin Solutions, Inc. All rights reserved.