Code is given below:
Code: Select all
# include <stdio.h>
int main()
{
char isbn[81];
int digits[10];
int s1, s2;
int scanned;
int delspace;
int count;
int i, c;
while(gets(isbn))
{
count=0;
scanned=0;
delspace=0;
for(i=0; isbn[i]; i++)
{
if(scanned==0)
if(isbn[i]==' ' || isbn[i]=='\t')
{
for(c=0; isbn[c]; c++)
isbn[c]=isbn[c+1];
i--;
}
else scanned++;
if(scanned==1)
{
if(isbn[i]>='0' && isbn[i]<='9')
{
if(count<10) digits[count]=isbn[i]-'0';
count++;
}
else if(isbn[i]=='X' && count==9)
{
digits[count]=10;
count++;
}
else if(isbn[i]==' ' || isbn[i]=='\t')
{
delspace=i;
scanned++;
}
else if(isbn[i]!='-') break;
if(count>10) break;
}
if(scanned==2)
if(isbn[i]!=' ' && isbn[i]!='\t')
{
delspace=0;
break;
}
}
if(delspace) isbn[delspace]='\0';
if(isbn[0]=='\0')
{
printf("is incorrect.\n");
continue;
}
if(count!=10 || isbn[i])
{
printf("%s is incorrect.\n", isbn);
continue;
}
s1=0; s2=0;
for(i=0; i<10; i++)
{
s1+=digits[i];
s2+=s1;
}
if(s2%11) printf("%s is incorrect.\n", isbn);
else printf("%s is correct.\n", isbn);
}
return 0;
}