输出结果都是0,应该是精度问题出错了吧

img


#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int x,y;
long long int p;
scanf("%d\n",&x);
scanf("%d\n",&y);
scanf("%ld\n",&p);
long long int sum;
for(int i=0;i<y;i++){
sum*=x;

    }
    printf("%ld\n",fmod(sum,p)) ;



}

}

int i=0;开始算,后面所有乘积都是0
sum也没有初始化。

scanf("%d\n",&x);
scanf("%d\n",&y);
scanf("%ld\n",&p);
三个输入里‘\n' 符多余。

1、scanf里面的\n应该去掉
2、sum应该初始化为1