[ shakall @ 01.01.2016. 23:08 ] @
Učitati članove niza. Sabirati članove niza sve dok je suma manja od 241.
Code:
#include <iostream>
using namespace std;
int main(){
    int n;
    cout<<"Dimenzija niza je:"<<endl;
    cout<<"n= ";
    cin>>n;
    int a[n];
    //Unos niza
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    //Racunanje sume
    int sum=0;
    while(sum<241){
        for(int i=0;i<n;i++) sum+=a[i];
    }
    //Ispis rezultata
    cout<<"suma= "<<sum;
    cin.sync();
    cin.ignore();
    return 0;
}

Zasto mi sumira sve elemnte niza a ne prestane sa sumiranjem kad suma premasi vrijednost 241?

[Ovu poruku je menjao Mihajlo Cvetanović dana 02.01.2016. u 04:40 GMT+1]
[ Mihajlo Cvetanović @ 02.01.2016. 03:45 ] @
Imaš dvostruku petlju, while, a unutar while imaš for. Ono što se dešava je da program uđe u prvi krug while petlje, a tu se izvrti cela for petlja od 0 do n, pa ako je na ulazu u drugi krug while petlje sum >= 241 onda izađe iz petlje, a ako je manje onda ponavlja postupak.

Ono što treba da imaš je samo jedna for petlja, ali da uslov za nastavak rada u petlji bude kombinacija, i < n && sum < 241, umesto samo i < n.
[ shakall @ 02.01.2016. 10:04 ] @
Probao sam i to ali opet ne izbacuje kako treba. Uglavno, rijesio sam ga na ovaj nacin.
Code:
#include <iostream>
using namespace std;
int main(){
    int n;
    cout<<"Dimenzija niza je:"<<endl;
    cout<<"n= ";
    cin>>n;
    int a[n];
    //Unos niza
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    //Racunanje sume
    int sum=0;int i=0;
    
    do{


        sum+=a[i];
        i++;
    }while(i<n && sum+a[i]<=241);
    //Ispis rezultata
    cout<<"suma= "<<sum;
    cin.sync();
    cin.ignore();
    return 0;
}



[Ovu poruku je menjao Mihajlo Cvetanović dana 03.01.2016. u 14:37 GMT+1]
[ shakall @ 02.01.2016. 10:12 ] @
Moze i sa for petljom ipak ali da uslov bude i<n && sum+a[i ]<241


[Ovu poruku je menjao Mihajlo Cvetanović dana 03.01.2016. u 14:37 GMT+1]