@maki1234: Pan senior zechce sobie usiąść w fotelu, wódeczki podać? Zimna ma być? :D ostatnim razem używałem c++ na studiach w 2009 i trochę mi się ulotniło :D
int main() { std::vector<unsigned int> liczby(3) ; for(auto idx=0;idx<3;++idx) { unsigned int temp; std::cin>>temp; liczby.push_back(temp); }
auto najwieksza = std::max_element(liczby.begin(), liczby.end()); auto suma_pozostalych = std::accumulate(liczby.begin(), liczby.end(), 0u, [&najwieksza](unsigned int a, unsigned int b) { return b != *najwieksza ? a + b : a; });
std::cout<<suma_pozostalych; return 0; } Nie uwzględnia przypadk gdzie masz więcej niż jedną największą liczbe. A i std::cout<<sumapozostalych;
?
Robię sobie zbiór zadań z c++ i poradziłem sobie z tym tak:
nie mniej chciałbym wiedzieć, czy jest jakaś taka pętla, w której można podstawić nieznaną przed wykonaniem programu ilość przebiegów.
#programowanie
Btw: operator porównania to ==.
Btw2: pętla wykonuje się tak długo jak długi warunek jest spełniony
for (int i = najwieksza; i == 0; i--)
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
system("chcp 1250");
int liczba1, liczba2, liczba3;
std::cout <<"Podaj 3 nieujemne liczby całkowite";
std::cout << '\n';
std::cout <<"Liczba 1: ";
@youmimicanski: źle napisałeś pętle. Powinno być == a nie =
@youmimicanski: do każdej możesz
@walokid: junior cicho tam, = ma być
@maki1234: Pan senior zechce sobie usiąść w fotelu, wódeczki podać? Zimna ma być? :D ostatnim razem używałem c++ na studiach w 2009 i trochę mi się ulotniło :D
#include <iostream>
using namespace std;
int main()
{
unsigned int liczby[3],najwieksza=0,suma=0;
cout<<"Podaj trzy nieujemne liczby calkowite:\n";
cin>>liczby[0]>>liczby[1]>>liczby[2];
for(int i=0;i<3;++i)
{
if(liczby[i]>najwieksza)
{
najwieksza=liczby[i];
}
suma+=liczby[i];
}
suma-=najwieksza;
for(int i=0;i<najwieksza;++i)
{
cout<<suma<<endl;
}
return 0;
}
#include <iostream>
#include<vector>
#include<algorithm>
#include <numeric>
int main()
{
std::vector<unsigned int> liczby(3) ;
for(auto idx=0;idx<3;++idx)
{
unsigned int temp;
std::cin>>temp;
liczby.push_back(temp);
}
auto najwieksza = std::max_element(liczby.begin(), liczby.end());
auto suma_pozostalych = std::accumulate(liczby.begin(), liczby.end(), 0u, [&najwieksza](unsigned int a, unsigned int b) {
return b != *najwieksza ? a + b : a;
});
std::cout<<suma_pozostalych;
return 0;
}
Nie uwzględnia przypadk gdzie masz więcej niż jedną największą liczbe. A i std::cout<<sumapozostalych;