• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie kilku liczb-Visual Studio 2013

Cloud VPS
0 głosów
1,353 wizyt
pytanie zadane 21 czerwca 2016 w C i C++ przez wojtekw0703 Użytkownik (960 p.)
edycja 21 czerwca 2016 przez wojtekw0703

Witam. Z tego względu,że nie otrzymałem jednoznacznej odpowiedzi w poprzednim pytaniu zdam je ponownie. 
Jeśli dodaję do siebie tylko dwie liczby to wszystko działa, natomiast jeśli chcę dodać od razu do siebie z 3 lub więcej liczb to kalkulator nie działa poprawnie. Jak mogę to naprawić ? Tutaj ONP nie może być użyte. Mała konfiguracja kodu wystarczy, tylko nie wiem jaka...

 

private: System::Void button17_Click(System::Object^  sender, System::EventArgs^  e) {
	pierwsza = Convert::ToDouble(okno->Text);
	operacja = '+';
	status = true;
}
private: System::Void button21_Click(System::Object^  sender, System::EventArgs^  e) {

		druga = Convert::ToDouble(okno->Text);

	

	switch (operacja)
	{
	
	case '+':
		wynik = pierwsza + druga;
		pierwsza = wynik;

	break;
		
       }

 

2 odpowiedzi

0 głosów
odpowiedź 21 czerwca 2016 przez p0m0 Obywatel (1,190 p.)
Nie jestem pewien (nie piszę programów graficznych), ale nie masz w ogóle trzeciej liczby. Aby działało powinieneś ją ustawić, następnie sprawdzić, jaki jest operator między drugą i trzecią liczbą, a na koniec, jeśli jest to plus, to wykonać:
wynik += trzecia;
komentarz 21 czerwca 2016 przez wojtekw0703 Użytkownik (960 p.)
Oki, dzięki wielkie za szybką odpowiedź. Tylko teraz to co napisałeś to będzie działać tylko dla trzech liczb,które wpiszę. A co jeśli wpiszę np.: 5+9+3+6 ? ;)
komentarz 21 czerwca 2016 przez p0m0 Obywatel (1,190 p.)

Jeśli chcesz dodawać dowolnie wiele liczb, to zrób to w pętli.

Oddzielasz od tekstu pierwszą liczbę.

wynik=pierwsza;

powtarzasz liczbę równą (liczbie znaków '+' w tekście - 1 )

Oddzielasz kolejną liczbę

wynik += kolejna

 

Mam nadzieję, że rozumiesz koncepcję.

komentarz 21 czerwca 2016 przez p0m0 Obywatel (1,190 p.)
#include<iostream>
using namespace std;
int calc(string s){
	int out=0, help=0;
	for(int i=0;i<s.size();i++){
		if(s[i]=='+'){
			out+=help;
			help=0;
		}
		else{
			help*=10;
			help+=int(s[i]-'0');
		}
	}
	out+=help;
	help=0;
	return out;
}
int main(){
	string s;
	cin >> s;
	cout << calc(s) <<'\n';
	return 0;
}

Tu masz prosty program, który wczytuje jeden wiersz składający się z liczb i symboli '+', zaś na wyjście daje sumę tych liczb (chyba o to Ci chodziło).

Teraz wystarczy, że w swoim programie wczytasz stringa z wejścia i przekażesz do funkcji calc, a otrzymasz wynik.

0 głosów
odpowiedź 21 czerwca 2016 przez wojtekw0703 Użytkownik (960 p.)
Ktoś jeszcze ma jakieś pomysły ? Kalkulator zachowuje się tak jakby nie pamiętał poprzedniej zmiennej... (5+6+2 = u niego 8). Proszę o pomoc.
komentarz 21 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Jeśli ONP nie działa, chociaż nie wiem ja. Spróbuj użyć tablic i petli lub po prostu użyj nawiasów.

Podobne pytania

0 głosów
2 odpowiedzi 1,792 wizyt
0 głosów
0 odpowiedzi 1,515 wizyt
pytanie zadane 4 listopada 2020 w C i C++ przez Bartosz007 Nowicjusz (120 p.)

93,483 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...