关于长整型问题
这是求两个数平方后求阶再求和 用的嵌套调用 害怕数据太大 用的都是长整型当输入1和2时算出结果为25正确 可是输入6和7返回结果为0这是怎么回事呢?
#include<stdio.h>
long f1( long n1 , long n2 );//求平方
long f2( long m1, long m2 );//求阶
main(){
long a , b ;
long z;
scanf("%ld%ld",&a,&b);
z=f1(a,b);
printf("%ld",z);
return 0;
}
long f1( long n1 , long n2 ){
long s , s1 , s2;
s1=n1*n1;
s2=n2*n2;
s=f2(s1,s2);
return s;
}
long f2( long m1 , long m2 ){
long i , j;
long c;
for(i=m1-1 ; i>=1 ; i--)
{
m1=m1*i;
}
for(j=m2-1 ; j>=1 ; j--)
{
m2=m2*j;
}
c=m1+m2;
return c;
}
是不是我把数据都定义成长整型了 错误了 还是怎么回事呢