回复 9楼 linlulu001
搭车同问能帮我看看我的问题出在哪么
程序代码:
#include<stdio.h> #include<string.h> int check(char a[]); int main(void) { int i,j,n,l; char a[20]; scanf("%d ",&n); for ( i = 0; i < n; ++i) { gets(a); l=strlen(a); if(l==15) { for(j=14;j>5;j--) a[j+2]=a[j]; if(a[14]=='9'&&a[15]=='9'&&(a[16]>'5'&&a[16]<='9')) { a[6]='1'; a[7]='8'; } else { a[6]='1'; a[7]='9'; } a[17]=check(a); a[18]='\0'; printf("%s",a); } else if(l==18) { if(a[17]==check(a)) printf("Valid\n"); else printf("Invalid\n"); } else printf("Invalid\n"); } return 0; } int check(char a[]) { int s=0,i; int wi[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; char d[11]={'1','0','X','9','8','7','6','5','4','3','2'}; for (i = 0; i < 17; ++i) s += (a[i]-'0')*wi[i]; return d[s%11]; }
在进入l=15的循环结束后要输入回车才能继续下去
想不通问题出在哪里
[此贴子已经被作者于2016-11-18 18:39编辑过]