Mam za zadanie napisać program który dla podanej ilości par liczba, będzie zliczał ile razy w dodawaniu pod kreską będzie trzeba przenieść 1 do przodu. Ale pojawia się problem, że wyniki pokazują się po ukończeniu pętli, a nie podczas.
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
long long a,b;
cin>>n;
for (int i=1;i<=n;i++)
{
int p=0,liczba_przeniesien=0;
cin>>a>>b;
while(a!=0 || b!=0)
{
if (a%10+b%10+p>=10)
{
p=1;
liczba_przeniesien++;
}
else
{
p=0;
}
a=a/10;
b=b/10;
}
if ((a==9 || b==9) && p==1) liczba_przeniesien++;
cout<<liczba_przeniesien<<"\n";
}
return 0;
}
Próbowałem też z while z warunkiem, że zostały podane dane wejściowe, ale wtedy nic nie wypisuje, tylko od razu przechodzi do podania następnych danych wejściowych.
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
long long a,b;
cin>>n;
while (cin>>a>>b)
{
int p=0,liczba_przeniesien=0;
while(a!=0 || b!=0)
{
if (a%10+b%10+p>=10)
{
p=1;
liczba_przeniesien++;
}
else
{
p=0;
}
a=a/10;
b=b/10;
}
if ((a==9 || b==9) && p==1) liczba_przeniesien++;
cout<<liczba_przeniesien<<"\n";
}
return 0;
}
Mógłby mi ktoś powiedzieć dlaczego wynik wypisuje się po zakończeniu pętli?