-1
   #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
4

1 回答 1

2

pow定义在math.h其中您也在代码中定义。powin math.hhas signature:这double pow(double x, double y)导致了冲突。

使用math.h pow并删除您的版本。或者使用您实施的那个并删除math.h.

如果您正在使用您的版本powin gccuse-fno-builtin-pow停止检测powas builtin,以便使用您的版本pow

于 2012-06-13T05:50:14.907 回答