C模数,输出错误

时间:2014-12-20 16:20:06

标签: c

我的简单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提供错误的号码。

例如,podstawawykladnik的值为3,而podstawa%10打印出3 wykladnik%10打印出5。

这个错误很有意思,因为wykladnik%10的值总是比它应该大2,我不明白为什么。

我希望我提供了足够的信息,有人能够帮助我。我一直试图找到这个错误10分钟,我仍然看不到它。

2 个答案:

答案 0 :(得分:5)

由于您的数据类型使用了错误的说明符,因此输出错误。它将调用未定义的行为。将格式说明符从%d更改为%llu unsigned long long,将%u更改为unsigned int

答案 1 :(得分:1)

您使用了错误的格式说明符try "%llu"