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

    [C++] Somma di tutti gli elementi di un array

    Salve ragazzi, ho bisogno di una mano e online non trovo nulla che mi puo aiutare neanche sul libro.
    Devo fare la somma di tutti gli elementi di un array, il codice che ho inserito e questo;


    codice:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int y[3],s;
    
        y[0]=10;
        y[1]=40;
        y[2]=7;
        y[3]=50;
        s=0;
    
    
        {
            for(int i=0;i<3;i++)
    
                s+=y[i];
        }
        cout<<s;
    
    
    
    
    return 0;
    }

    non riesco a capire come devo far capire al compilatore che la variabile 's' del ciclo for non deve azzerarsi, ma sommarsi al valore successivo che ho dato alla variabile 'y'. Questo e un programmino che ho fatto per cercare di capire come devo fare.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Così va bene ma devi togliere

    y[3]=50;

    perché l'array ha 3 elementi non 4.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ho risolto, ho utilizzato un ciclo while anziche il ciclo for. Il codice è questo;


    codice:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int y[3];
        int i=0,s=0;
    
        y[0]=4;
        y[1]=40;
        y[2]=7;
    
             while( i<3)
            {
              s+=y[i++];
    
            }
    
    
               cout<<  s;
    
    
    
    return 0;
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Funziona anche con il ciclo for ... il problema era solo quella linea che ti ho detto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    va bene, grazie mille dell'aiuto.

  6. #6
    scusami per il disturbo ma ho un altro problema adesso. L'esercizio dice cosi:
    creare una matrice quadratica, confrontare la triangolare superiore s1 con quella inferiore s2, se s1 � maggiore di s2 stampa s1, altrimenti creare un vettore v composta con s1 e s2.

    il codice che ho messo e questo:

    codice:
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #define MAX 50
    
    using namespace std;
    
    int r,c,matrice[MAX][MAX];
    
    void caricamento_matrice();
    
    void stampa_matrice();
    
    void confronto_delle_triangolari();
    
    
    
    int main()
    {
    
         caricamento_matrice();
    
         stampa_matrice();
    
         confronto_delle_triangolari();
    
        return 0;
    
        }
    
    
    void caricamento_matrice()
    {
         do
     {
         cout<<"inserisci il numero di righe: ";
    
        cin >>r;
    
        cout<<"inserisci il numero di colonne: ";
    
        cin>>c;
    
        if(r>MAX)
    
            cout<<"numeri di righe troppo alto reinserirle perfavore.\n";
    
        if(r<1)
    
            cout<<"numero di righe troppo basso reinserirle perfavore.\n";
    
        if (c>MAX)
    
            cout<<"numero di colonne troppo alto reinserirle perfavore.\n";
    
        if(c<1)
    
            cout<<"numero di colonne troppo basso reinserirle perfavore.\n";
        if(r!=c)
    
            cout<<"per favore si inserisca una matrice quadratica.\n";
    
        }
        while(r>MAX || r<1 || c>MAX || c<1 || r!=c);
    
        for(int h=0;h<r;h++)
        {
        for(int k=0;k<c;k++)
        {
        cout << "inserici l'elemento di riga "<< h <<" e di colonna "<< k << " : ";
        cin >> matrice[h][k] ;
        }
    
        }
    
    }
    
    void stampa_matrice()
    {
    
         cout <<"la  matrice e la seguente:\n";
        {
    
        for(int i=0;i<r;i++)
            {
            for(int t=0;t<c;t++)
            {
         cout << matrice[i][t] <<"\t";
            }
    
            cout <<endl;
            }
    }
    
    }
    
    
    
    void confronto_delle_triangolari()
    {
        int i=0,h=0;
        int s1=0,s2=0;
    
        while(i<c)
        {
    
            s1+=matrice[0][i++];
    
    
        }
    
    cout << s1 ;
    
       while(h<r)
       {
           
      s2+=matrice[h++][c];
      
       }
       
       cout<<s2;
    }
    il problema e che non riesco a fare la somma dell'ultima colonna della matrice. le ho provate tutte ma mi esce sempre come somma 0.

  7. #7
    niente ho risolto anche questo non vi disturbo piu scusatemi davvero.

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.