У меня действительно очень неприятная проблема в моей простой программе на C, и я не понимаю, почему этот код не работает.Modulo in C, неправильный вывод
Это код:
#include <stdio.h>
int main()
{
unsigned long long podstawa,wykladnik;
unsigned int d;
scanf("%d",&d);
while(d>0)
{
d--;
scanf("%d %d",&podstawa,&wykladnik);
printf("%d %d",(podstawa%10),(wykladnik%10));
}
return 0;
}
При компиляции этой программы вы сможете увидеть, что даже несмотря на ввод данных, является правильным.
Wykladnik%10
дает неправильный номер.
Например значение podstawa
и wykladnik
составляет 3 и в то время как podstawa%10
печатает 3 wykladnik%10
печатает 5.
Эта ошибка интересна тем, что значение wykladnik%10
всегда больше, чем это должно быть на 2 и у меня нет идея почему.
Надеюсь, я предоставил достаточно информации, и кто-то может мне помочь. Я пытался найти эту ошибку в течение 10 минут, и я все еще не вижу ее.
распечатки podstawa и wykladnik сразу после зсапа – Yetti99
Попробуйте использовать '% llu' вместо'% d' –