Przechowywanie wpisanych liczb

0

Witam mam problem z przechowywaniem danych wpisanych przez uzytkownika, mam program ktory prosi o podanie liczb calkowitych jak jest 0 to konczy. Liczby sume cyfr podanych w tej liczbie a potem ma powiedziec ktora suma byla najwieksza i z tym mam problem. Nie moge uzyc tablic, napisow ani zadnych innych kolekcji. Z gory dziekuje za pomoc przyjaciele :)

int a, b;
int main(){
#if defined POL
		do {

		cout << "Napisz naturalna liczbe (0 jesli skonczone): ";
		cin >> a;
		b = (a % 10) + (a / 10) % 10 + (a / 100) % 10 + (a / 1000) % 10 + (a / 10000) % 10;


	} while (a != 0);
cout << "Najwieksza suma jest suma cyfry " << a << " ktora wynosi: " << b << "\n";


#endif
#if defined ENG
	do {
		cout << "Enter a natural numer (0 if done): ";
		cin >> a;
		b = (a % 10) + (a / 10) % 10 + (a / 100) % 10 + (a / 1000) % 10 + (a / 10000) % 10;


		cout << "Max of digits was " << a << " for " << b << "\n";
	} while (a != 0);
cout << "Max of digits was " << a << " for " << b << "\n";
#endif
}
2

Dlaczego używasz zmiennych globalnych? Nie powinieneś też duplikować kodu. Jeśli chcesz lokalizować program to podmieniaj tylko stringi.

W każdym razie: trzymaj zapamiętaj największą wartość. Jeśli trafi się większa - nadpisz ją.

1
  1. Usuń zmienne globalne.
  2. Otwórz pętlę w które j będziesz sumował wyniki modulo 10 liczby i w każdym przebiegu dzielił ją przez 10. Warunkiem zakończenia pętli będzie liczba 0
  3. Jeśli suma jest większa niż wyliczona, zapisz ją oraz zapisz pierwotną liczbę.
  4. Usuń (na razie) wersję ENG. Zrobiłeś to źle. Jak ukończysz program, będziesz cyzelował wersje językowe.
  5. Dopracuj program tak aby nie można było wprowadzać napisów a jedynie liczby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1