#include<math.h>
#include<stdio.h>
int main()
{
long i,j[100000],k,l,T,a,n[100000],c,sum=0,m;
scanf("%ld\n", &T);
for(c=1; c<=T; c++)
{
n[c] = 0;
}
for(i=1; i<=T; i++)
{
scanf("%ld", &j[i]);
printf(" \n");
}
for(k=1; k<=T ; k++)
{
for(l=1; j[k]>pow(5,l); l=l+15);
a=l++;
n[k] = j[k];
while(a>0)
{
n[k] = n[k]/pow(5,l);
sum = sum + n[k];
}
n[k] = sum;
}
for(m=1; m<=T; m++)
{
printf("%ld \n", &n[m]);
}
return 0;
}
long pow(long x,long y)
{
if(y==0)
return 1;
else
return(x*pow(x,y-1));
}
错误:POW的类型冲突
这个程序是否正确? 这是程序声明 输入
输入的第一行有一个正整数T(等于约100000)。它代表要遵循的数字数量。然后有T行,每行包含恰好一个正整数N,1 <= N <= 1000000000。
输出
对于每个数字N,输出包含单个非负整数Z(N)的单个行。 实施例
示例输入:
6
3
60
100
1024
23456
8735373
示例输出:
0
14
24
253
5861
2183837
答案 0 :(得分:2)
pow
在math.h
中定义,您也在代码中定义。 pow
中的math.h
具有签名:double pow(double x, double y)
,导致冲突。
使用math.h
pow
并删除您的版本。或者使用您实施的那个并删除math.h
。
如果您在pow
gcc
中使用-fno-builtin-pow
版本,请使用pow
停止检测pow
为内置版,以便您的{{1}}版本为使用