^
这个符号在c语言中是异或的运算,不是求幂的运算,c语言中求幂用pow函数
#include
#include
int main()
{
int k,a,b,s,c1,c2,d1,d2;
while(scanf("%d%d%d",&a,&b,&k)&&a>0&&b>0)
{
s=a+b;
c1=a%(int)pow(10,k);
c2=c1/(int)pow(10,k-1);
d1=b%(int)pow(10,k);
d2=d1/(int)pow(10,k-1);
if(c2==d2)printf("-1\n");
else printf("%d\n",s);
}
return 0;
}
^是按位与或,
c语言没有乘方运算符。必须使用乘法循环或者math.h里面的pow()函数。这个函数是double类型的。另外,你的程序是在第k位相同时输出-1,而不是末尾k位相同时输出-1,不符合题意!!
#include
#include
int main()
{
int k,a,b,s,c1,c2;
while(1)
{
printf("Please input integer 0scanf("%d%d%d",&a,&b,&k);
if (a<=0||b<=0||a>=10000||b>=10000||k=<0||k>=5)
{
printf("input wrong!!Hit a key to exit!!\n");
getch();
getch();
exit(0);
}
s=a+b;
c1=1;
for(c2=1;c2<=k;c1*=10,c2++);
if((a%c1)==(b%c1)) printf("-1\n");
else printf("%d\n",s);
}
}
求幂不是用^是用两个**,或者用pow(a,b)这个函数