Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    3

    [c++]programma calcolo minimo e massimo

    ho creato col devc++ qst programma x calcolare il minimo e il massimo delle dimensioni di un vettore.. ma evidentemnete c'è qualcosa ke non va xk quando vado ad eseguire il programm dopo aver inserito le dimensioni x fare il minimo il programma si blocca.. qualke aiuto?

    codice:
    include<stdio.h>
    #define N 50
    #define MENU 0
    #define MINIMO 1
    #define MASSIMO 2
    #define OUT 100
    //struttura che identifica un vettore
    typedef
    struct vett{
    int v[N];
    int min;
    //int max;
    }
    t_vett;
    
    /*funzioni utilizzate
    int menu(void);
    int minimo(int a[],int n);
    int massimo(int a[],int n);*/
    
    //Menu
    
    int menu(void)
    {
    int scelta;
    printf("MENU");
    printf("\nCosa vuoi fare?");
    printf("\n 1. calcolare il minimo del vettore");
    // printf("\n 2 calcolare il massimo del vettore");
    printf("\n 0. esci\n");
    scanf("%d",&scelta);
    system("pause");
    
    
    }
    //funzione minimo
    int minimo(int a[],int n)
    { t_vett risultato;
    int i,m;
    m=a[0];
    for(i=1;i<n;i++)
    { if(m>a[i])
    m=a[i];}
    risultato.min=m;
    printf("il minimo del vettore e': %d",m);
    scanf("%d",m);
    system("pause");
    return;
    }
    
    
    //funzione scelta
    main()
    { t_vett risultato;
    int scelta;
    int a[N],n,i;
    printf("\n Inserisci la dimensione del vettore n= ");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {printf("Inserisci a[%d]",i);
    risultato.v[i]=a[i];
    scanf("%d",&a[i]);
    }
    
    scelta=MENU;
    while(scelta!=OUT)
    {
    switch(scelta){
    case MENU:
    scelta=menu();
    if(scelta==MENU)
    scelta=OUT;
    break;
    case MINIMO:
    minimo(a,n);
    scelta=MENU;
    break;
    /*case MASSIMO:
    scelta =massimo(a,n);
    scelta =MENU;
    break;*/
    }
    }
    }
    
    
    
    //funzione massimo
    /*int massimo(int a[],int n)
    { struct vett v;
    int i;
    v.max=a[0];
    for(i=1;i<n;i++)
    {if(v.max<a[i])
    v.max=a[i];}
    printf("il massimo del vettore e': %d",v.max);
    scanf("%d",&v.max);
    system ("pause");
    }
    }*/

  2. #2
    Sostituendo "include" con "#include" e compilando con
    codice:
    $ g++ --version
    i686-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
    si ottiene:
    codice:
    $ g++ -Wall -ansi -pedantic -Wextra -Wconversion main.cpp 
    main.cpp: In function 'int menu()':
    main.cpp:32: error: 'system' was not declared in this scope
    main.cpp: In function 'int minimo(int*, int)':
    main.cpp:46: warning: format '%d' expects type 'int*', but argument 2 has type 'int'
    main.cpp:47: error: 'system' was not declared in this scope
    main.cpp:48: error: return-statement with no value, in function returning 'int'
    main.cpp: At global scope:
    main.cpp:53: error: ISO C++ forbids declaration of 'main' with no type
    main.cpp: In function 'int menu()':
    main.cpp:35: warning: control reaches end of non-void function
    main.cpp: In function 'int minimo(int*, int)':
    main.cpp:49: warning: control reaches end of non-void function
    che sono autoesplicanti

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    3
    Originariamente inviato da MacApp
    Sostituendo "include" con "#include" e compilando con
    codice:
    $ g++ --version
    i686-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
    si ottiene:
    codice:
    $ g++ -Wall -ansi -pedantic -Wextra -Wconversion main.cpp 
    main.cpp: In function 'int menu()':
    main.cpp:32: error: 'system' was not declared in this scope
    main.cpp: In function 'int minimo(int*, int)':
    main.cpp:46: warning: format '%d' expects type 'int*', but argument 2 has type 'int'
    main.cpp:47: error: 'system' was not declared in this scope
    main.cpp:48: error: return-statement with no value, in function returning 'int'
    main.cpp: At global scope:
    main.cpp:53: error: ISO C++ forbids declaration of 'main' with no type
    main.cpp: In function 'int menu()':
    main.cpp:35: warning: control reaches end of non-void function
    main.cpp: In function 'int minimo(int*, int)':
    main.cpp:49: warning: control reaches end of non-void function
    che sono autoesplicanti
    intanto grazie x la risposta.. ma potresti spiegarti meglio che è da poco ke ho cominciato a programmare grazie devo dichiare gli int? e come faccio?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    codice:
    include<stdio.h>
    #define N 50
    #define MENU 0
    #define MINIMO 1
    #define MASSIMO 2
    #define OUT 100
    //struttura che identifica un vettore
    typedef
    struct vett{
    int v[N];
    int min;
    //int max;
    }
    t_vett;
    
    /*funzioni utilizzate
    int menu(void);
    int minimo(int a[],int n);
    int massimo(int a[],int n);*/
    
    //Menu
    
    int menu(void)
    {
    int scelta;
    printf("MENU");
    printf("\nCosa vuoi fare?");
    printf("\n 1. calcolare il minimo del vettore");
    // printf("\n 2 calcolare il massimo del vettore");
    printf("\n 0. esci\n");
    scanf("%d",&scelta);
    system("pause");
    una funzione non void deve avere il return ... 
    
    }
    //funzione minimo
    int minimo(int a[],int n)
    { t_vett risultato;
    int i,m;
    m=a[0];
    for(i=1;i<n;i++)
    { if(m>a[i])
    m=a[i];}
    risultato.min=m;
    printf("il minimo del vettore e': %d",m);
    correggi scanf("%d", &m); 
    scanf("%d",m);
    system("pause");
    una funzione dichiarata int ... deve ritornare un intero 
    return;
    }
    
    
    //funzione scelta
    
    la dichiarazione di main deve essere ==>> int main ()
    main()
    { t_vett risultato;
    int scelta;
    int a[N],n,i;
    printf("\n Inserisci la dimensione del vettore n= ");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {printf("Inserisci a[%d]",i);
    risultato.v[i]=a[i];
    scanf("%d",&a[i]);
    main deve ritornare un intero al chiamante, normalmente se il codice esce con successo ritorna 0, quindi aggiungi [b]return ( 0 );[/b}  
    }
    
    scelta=MENU;
    while(scelta!=OUT)
    {
    switch(scelta){
    case MENU:
    scelta=menu();
    if(scelta==MENU)
    scelta=OUT;
    break;
    case MINIMO:
    minimo(a,n);
    scelta=MENU;
    break;
    /*case MASSIMO:
    scelta =massimo(a,n);
    scelta =MENU;
    break;*/
    }
    }
    }
    
    
    
    //funzione massimo
    /*int massimo(int a[],int n)
    { struct vett v;
    int i;
    v.max=a[0];
    for(i=1;i<n;i++)
    {if(v.max<a[i])
    v.max=a[i];}
    printf("il massimo del vettore e': %d",v.max);
    scanf("%d",&v.max);
    system ("pause") esiste solo su windows 
    system ("pause");
    }
    }*/

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    3
    grazie dell'aiuto una sola cosa nn mi è chiara...

    int menu(void)
    {
    int scelta;
    printf("MENU");
    printf("\nCosa vuoi fare?");
    printf("\n 1. calcolare il minimo del vettore");
    // printf("\n 2 calcolare il massimo del vettore");
    printf("\n 0. esci\n");
    scanf("%d",&scelta);
    system("pause");
    una funzione non void deve avere il return ...
    ke return deve avere qst funzione?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    sei tu che la hai dichiarata int, quindi deve ritornare un intero.
    Io ho guardato solo gli errori, non la logica del programma
    ciao

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.