Poproszę o wyjaśnienie co tu jest źle i zrobienie(przerobienie programu na dole)programu który sprawdzałby ile masz lat.
Chodzi mi o to ,że użytkownik wpisuje swój rok urodzenia ,program odejmuje aktualny rok od daty urodzenia i na końcu sprawdza czy ma więcej niż 100 lat lub mniej niż zero lat.Wtedy gdy ma więcej niż 100lub mniej niż zero każe mu ponowić procedure wpisywania roku.
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a,b,i;
cout<<"Wpisz ile masz lat\n";
i=90;
cin>>b;
for(i;i>100||i<0;i++)
{
cin>>b;
i=2011-b;
cout<<"\n"<<i;
}
system("pause");
}
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Noo to tak na początek inicjalizacjie można by zrobić w pętli for(i=90 np.) samego i sie nie pisze, zostawiamy puste. Noo i pozatym pętla sie nie wykona u ciebie ani razu nie spełnia na starcie warunku. Inkrementacja też jest nie potrzebna.
For - uzywasz wtedy gdzy mamy jakiś "skok".
Myśle że tutaj użycie pętli for jest dość niekorzystne.
Dlatego zaproponuje rozwiązanie z do ... while Poza tym mamy rok 2012 ^ ^
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a;
do{
cout<<"Wpisz rok urodzenia\n";
cin>>a;
a=2012-a;
}while(a>100 || a<0);
cout <<" Wiec masz " << a << " lat.\n";
system("pause");
}
P.S uważaj bo tutaj za używanie system("pause"); gryzą, pozatym fatalna optymalizacja ehhh ...
P.S2 jeśli sie uprzeć to za pomocą for też sie da a widzał bym to tak.
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a;
for (a=101;a>100 || a<0;)
{
cout<<"Wpisz rok urodzenia\n";
cin>>a;
a=2012-a;
}
cout <<" Wiec masz " << a << " lat.\n";
system("pause");
}