a
- копия указателя, который был передан. В конце update
, a
теряется. Когда вы делаете это:
a = &temp3;
Вы изменяете значение a
, но это не имеет значения, потому что a
после этого все равно пропало. Вместо этого присвойте значение тому, куда оно указывает, так же, как вы делали с b
:
*a = temp3;
Вы можете также использовать ссылки вместо указателей:
void update(int &a, int &b) {
int temp = a;
int temp2 = b;
int temp3 = temp + temp2;
printf("%d ", temp3);
b = abs(a - b);
a = temp3;
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
update(a, b);
printf("%d\n%d", a, b);
return 0;
}