这个为什么运行不了
#include<stdio.h>
int check(long long int d)
{
int sum=0;
int all;
int i;
int f=2;
for(i=20;i>=0;i--){
all=d/(10^i);
if((i%2)==1){
all=all*2;
if(all>9){
all=all-9;
}
}
sum=sum+all;
d=d%(10^i);
}
if((sum%10)==0){
f--;
}
return f;
}
int main()
{
long long int a;
printf("请输入一个卡号:");
scanf("%lld",&a);
int x=check(a);
if(x==1){
printf("成功!\n");
}
else{
printf("失败!\n");
}
}