注册 登录
编程论坛 C++教室

为什么结果显示是0.0000啊

s524250262 发布于 2015-05-26 15:54, 519 次点击
#include <stdio.h>
#include <math.h>
int main()
{
    long int x,y,mun,n;

    printf("输入随意的两个整数:");
    scanf("%d%d",&x,&y);
    mun=pow(x,y);
    n=mun%1000;
    printf("%f\n",n);
    return 0;

}
5 回复
#2
wmf20142015-05-26 15:58
是因为你用浮点数的显示格式来显示整形数造成的。
#3
s5242502622015-05-26 15:59
回复 2楼 wmf2014
新手不懂啊
#4
s5242502622015-05-26 16:08
回复 2楼 wmf2014
能给具体点的吗
#5
rjsp2015-05-26 16:10
程序代码:
#include <stdio.h>

unsigned long m_n( unsigned long m, unsigned long n )
{
    unsigned r = 1;
    for( unsigned t=m%1000; n; n>>=1, t=(t*t)%1000 )
        if( n&1 )
            r = (r*t)%1000;
    return r;
}

int main( void )
{
    unsigned long int x, y;
    printf( "输入随意的两个整数: " );
    scanf( "%lu %lu", &x, &y );
    printf( "%lu\n", m_n(x,y) );
    return 0;
}

输入 123 12
输出 721
#6
s5242502622015-05-26 16:14
回复 4楼 s524250262
看不懂
1