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

    [C++] Problema esecuzione

    Salve ragazzi
    ho un problema con il dev-c++,praticamente un paio di programmi me li compila,ma mentre li eseguo,arrivata quasi alla fine mi esce un'altra finestra con scritto "progetto.exe ha smesso di funzionare"
    non capisco perché,non mi fa nemmeno controllare se il programma è giusto.
    Per esempio questo è uno di quei programmi che mi crea il problema:
    codice:
    //questo programma calcola la somma e la media tra due numeri usando gli array#include<iostream>
    #include<math.h>
    usingnamespace std;
    #define N 10
    typedefint arraydiReali[N];
    arraydiReali v;
    
    
    
    
    
    
    
    
    
    
    int main(){
    int i;
    int v[i];
    int som; 
    som=0;
    
    
    for(int i=0; i<N; i++)
    {
    cout<<"v["<<i<<"]="<<endl;
    cin>>v[i];
    
    
    } 
    
    som+=v[ i];
    system ("pause");
    
    }
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il problema è qui

    int i;
    int v[i];

    in quel momento i non ha valore certo e non puoi utilizzarlo per impostare il vettore.

    Solo quando hai valorizzato i potrai scrivere

    int v[i];

    Ma poi perché usi due vettori v di diverso tipo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Già oregon ha ragione e faresti bene ad usare due variabili differenti, i lo usi come indice per il ciclo for e potresti dichiarare una costante, chiamala MAXLINE, da usare come grandezza per l'array.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2015
    Messaggi
    32
    Quote Originariamente inviata da AdelaidePuglies Visualizza il messaggio
    Salve ragazzi
    ho un problema con il dev-c++,praticamente un paio di programmi me li compila,ma mentre li eseguo,arrivata quasi alla fine mi esce un'altra finestra con scritto "progetto.exe ha smesso di funzionare"
    non capisco perché,non mi fa nemmeno controllare se il programma è giusto.
    Per esempio questo è uno di quei programmi che mi crea il problema:
    codice:
    //questo programma calcola la somma e la media tra due numeri usando gli array#include<iostream>
    #include<math.h>
    usingnamespace std;
    #define N 10
    typedefint arraydiReali[N];
    arraydiReali v;
    
    
    
    
    
    
    
    
    
    
    int main(){
    int i;
    int v[i];
    int som; 
    som=0;
    
    
    for(int i=0; i<N; i++)
    {
    cout<<"v["<<i<<"]="<<endl;
    cin>>v[i];
    
    
    } 
    
    som+=v[ i];
    system ("pause");
    
    }
    Grazie in anticipo
    Ho evidenziato con dei commenti i 4 errori principali che avevi fatto e ho aggiunto anche la media, fammi sapere se qualcosa non ti e' chiaro

    codice:
    //questo programma calcola la somma e la media tra due numeri usando gli array
    #define N 10
    #include <iostream>
    using namespace std;
    typedef int arraydiReali[N];
    int main() {
        arraydiReali v; //1)Cosa lo hai usato a fare altrimenti il typedef? xD 
        int i; 
        float som=0;
        for (i=0; i<N; i++){ //2)avevi dichiarato due volte int i
        cout<<"v["<<i<<"]="<<endl;
        cin>>v[i];
        som+=v[i]; //3)deve andare NEL ciclo, prima era fuori e sommava  0 SOLO al valore memorizzato nell'ultima posizione dell'array
        } 
        cout<<"La somma e':'"<<som<<endl;
        som=som/(float)(i);                  //questo e' giusto per compeltare il tuo programma
        cout<<"La media e':"<<som<<endl;    //salvando anche memoria, senza occupare due locazioni di memoria: una per la somma ed una per la media. 
        system ("pause");
        return 0; //4)non avevi aggiunto il return 
    }

    Ciao
    Ultima modifica di Warioss; 29-01-2016 a 15:08

  5. #5
    Quote Originariamente inviata da Warioss Visualizza il messaggio
    Ho evidenziato con dei commenti i 4 errori principali che avevi fatto e ho aggiunto anche la media, fammi sapere se qualcosa non ti e' chiaro

    codice:
    //questo programma calcola la somma e la media tra due numeri usando gli array
    #define N 10
    #include <iostream>
    using namespace std;
    typedef int arraydiReali[N];
    int main() {
        arraydiReali v; //1)Cosa lo hai usato a fare altrimenti il typedef? xD 
        int i; 
        float som=0;
        for (i=0; i<N; i++){ //2)avevi dichiarato due volte int i
        cout<<"v["<<i<<"]="<<endl;
        cin>>v[i];
        som+=v[i]; //3)deve andare NEL ciclo, prima era fuori e sommava  0 SOLO al valore memorizzato nell'ultima posizione dell'array
        } 
        cout<<"La somma e':'"<<som<<endl;
        som=som/(float)(i);                  //questo e' giusto per compeltare il tuo programma
        cout<<"La media e':"<<som<<endl;    //salvando anche memoria, senza occupare due locazioni di memoria: una per la somma ed una per la media. 
        system ("pause");
        return 0; //4)non avevi aggiunto il return 
    }

    Ciao
    Grazie,avevo fatto un macello xD
    Adesso è tutto chiaro u.u
    Grazie a tuti =D

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.