#naukaprogramowania #cpp Mireczki proszę o pomoc. Uczę się dopiero c++ i po kolej robie jakieś programming taski. Mam za zadanie napisać program który wczytuje wartość a<0, i musi dodawać do niej 25 dopóki a >=0. Na dole jest kod (bo cannot into spoiler), nie wiem co jest nie tak bo wykonuje dodawanie tylko 1 raz a dla małych liczb na minusie typu -1,-2,-3... aż do -25 wywala jakiś dziwny wynik
#include using namespace std; int main() { signed int a; cin>>a; do { a+=25;
@kevinhomealone: warunek jest w złą stronę. warunek w while rozum jako "podczas gdy". "podczas gdy a <= 0, dodawaj coś do a". jak warunek przestanie być prawdziwy, to dopiero wyskoczy z pętli.
@kevinhomealone: Drobna uwaga - przy pętli "do ... while" warunek sprawdzany jest dopiero PO pierwszym wykonaniu pętli. Czyli jak podasz liczbę większą od zera, np. 3, to program zwróci Ci 28 - a jest to niezgodne z zadaniem, które podałeś. W tym przypadku zastosuj zwykłego while'a:
while(a<0) { a+=25; }
program który wczytuje wartość a<0
Zauważ że warunek wejściowy nie jest ostry (nie uwzględnia zera, tylko liczby ujemne), dlatego pętla nie
@kevinhomealone: Też będzie działać, ale (jeśli mogę doradzić, oczywiście) polecam ograniczać sprawdzanie tych samych rzeczy do minimum i używać narzędzi w sposób, w jaki zostały użyty. Twoje rozwiązanie (if przed do-while) przypomina wbijanie gwoździ siekierą, ostrą stroną - można, ale łatwo palce stracić.
Później po prostu kod jest nieczytelny, ciężko zrozumieć, czemu programista dwa razy sprawdza to samo no i czemu nie zrobił tego "jak człowiek" ;)
Mireczki proszę o pomoc.
Uczę się dopiero c++ i po kolej robie jakieś programming taski.
Mam za zadanie napisać program który wczytuje wartość a<0, i musi dodawać do niej 25 dopóki a >=0.
Na dole jest kod (bo cannot into spoiler), nie wiem co jest nie tak bo wykonuje dodawanie tylko 1 raz a dla małych liczb na minusie typu -1,-2,-3... aż do -25 wywala jakiś dziwny wynik
#include
using namespace std;
int main()
{
signed int a;
cin>>a;
do
{
a+=25;
}
while( a>=0 );
cout<
while(a<0) {
a+=25;
}
Zauważ że warunek wejściowy nie jest ostry (nie uwzględnia zera, tylko liczby ujemne), dlatego pętla nie
Później po prostu kod jest nieczytelny, ciężko zrozumieć, czemu programista dwa razy sprawdza to samo no i czemu nie zrobił tego "jak człowiek" ;)