Pomoże ktoś w rozwiązaniu? C++
Wczytuj liczby i:
a) Wypisz iloczyn i średnią wszystkich wczytanych liczb dwucyfrowych
b) Wypisz maksymalną wartość z liczb jednocyfrowych.
Program kończy pracę, jeśli podasz liczbę trzycyfrową lub wczytasz 10 liczb. Wykorzystaj dowolną
pętlę.

Bardzo proszę o pomoc


Odpowiedź :

Odpowiedź:

#include <iostream>

using namespace std;

int main(){

   int iloczyn = 1;//musi byc 1 na początku

   int suma = 0;

   int licznik = 0;//tylko dla liczb dwucyfrowych

   int najwieksza = 0;

   int liczba = 0;

   int i = 0; //licznik pętli

   while(i  < 10){

       cout<<"Podaj liczbę nr "<<i+1<<":\t";

       cin>>liczba;

       // tylko liczby dwucyfrowe!

       if(liczba > 9 && liczba<100){

           iloczyn *= liczba;

           suma += liczba;

           licznik += 1;

       }

       else if (liczba < 10){

           if (liczba > najwieksza)

               najwieksza =liczba;

       }

       else {

           cout<<"za duzo!\n";

           break;

       }

       i++;

   }

   int srednia = suma/licznik;

   cout<<"\nwszystkich wprowadzonych liczb jest "<<i<<"\n";

   cout<<"liczb dwucyfrowych jest "<<licznik<<"\n";

   cout<<"\tsuma = "<<suma<<", średnia: "<<srednia<<", iloczyn: "<<iloczyn<<"\n";

   cout<<"najwieksza cyfra to "<<najwieksza<<"\n";

   return 0;

}

Wyjaśnienie:

liczymy iloczyn i średnią dla liczb dwucyfrowych (dodatkowo wyświetlam sumę)

mamy dwa liczniki, jeden dla pętli a drugi dla liczb dwucyfrowych

podajemy największa cyfrę

liczb trzycofrowych nie liczymi, kiedy się pojawią to wychodzimy z pętli

pętla while, blok instrukcji w  środku wykonuje się dopóki i<10

są jednak przypadki kiedy pętla może zakończyć się wcześniej, w środku pętli while w warunku else gdy liczba >= 100

jest jedna zmienna na wartość wczytywaną z klawiatury

Zobacz obrazek Ksin9
Zobacz obrazek Ksin9