一次A!
这种题目要得就是思路清晰,细心,考虑周全。。。
然后。。然后就没了。。。
注意字符串和int型数据的转来转去。。。
AC的代码:
#include <stdio.h>char ISBN[12];void find(int sum,int pos)
{//找出那个数字是什么int i;if(pos!=9 && pos!=-1){//如果不是最后一位看不清for(i=0;i<=9;i++){if( (sum+i*(10-pos))%11==0 ){printf("%d\n",i);return;}}}else if(pos==9 && pos!=-1){for(i=0;i<=10;i++){if((sum+i*(10-pos))%11==0 && i==10){printf("X\n");return;}if( (sum+i*(10-pos))%11==0) {printf("%d\n",i);return;}}}printf("-1\n");
}void work()
{int pos=-1;//存放问号位置int i;int sum=0;//算除了问号位的总和int num;//每一位数的整型形式for(i=0;i<10;i++){if(ISBN[i]=='?'){pos=i;continue;}if(ISBN[i]=='X')num=10;elsenum=ISBN[i]-48;sum+=(10-i)*num;}//printf("%d\n",sum);find(sum,pos);
}int main()
{//输入scanf("%s",ISBN);work();return 0;
}