Dlaczego program przy zastosowaniu cin i cout działa prawidłowo a po zmienieniu na scanf i printf nie?

0

Jak wyżej. Program działał, tak jak powinien przy zastosowaniu cin i cout. Gdy zmieniłam to na scnaf i printf, program pokazuje nieprawidłowe wyniki. Dlaczego? Czy coś źle zapisuje?

#include <iostream>
#include <stdio.h>

using namespace std;
long long z;
long long x, y, a;
int main()
{
    scanf("%lld", &z);
    for(int i=0; i<z; i++)
    { scanf("%lld %lld", &x, &y);
        while(x%2==0)
        {
            x=x/2;
        }
        while(y%2==0)
        {
            y=y/2;
        }
        a=y*x;
        printf("%lld", &a);

    }
    return 0;
}

P.S. Takie są wymagania sprawdzarki zdań, żeby dostać max ilość pkt. Nie robie tego ot tak

4

Do printf zamiast wartości przekazujesz adres, dlatego.
Powinno być:

printf("%lld", a);
0

Dla kodu

printf("%d", 22);
printf("%d", 18);

output, to

2218

Ty zapewne chcesz uzyskać 22 18. Zrób

printf("%d ", 22);

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