gpt4 book ai didi

c++ - 不允许的系统调用 : SYS_socketcall - Error when trying to verify ISBN

转载 作者:行者123 更新时间:2023-11-30 17:39:13 25 4
gpt4 key购买 nike

我正在尝试验证 C 语言中的 ISBN 编号,但是当我运行该程序时,出现以下错误:不允许的系统调用:SYS_socketcall

这是计算机科学类(class)的家庭作业。我已经完成了所有的工作,所以我并不是要求人们为我做我的作业。我只是想知道为什么我会收到这个错误,因为我是 C 语言的新手;我有 Java 背景以及一些网络编程语言背景。无论如何,如果有帮助的话,这是作业描述:

检查 ISBN 中的字符以验证正确性。

校验字符计算如下:首先,计算第一个数字加上第二个数字的两倍的总和加上第三位数字的三倍,...,加上第九位数字的九倍。这最后一个字符是总和除以 11 的余数。如果余数为 10,最后一个字符为 X。例如,求和ISBN 0-8065-0959-7 是

1*0 + 2*8 + 3*0 + 4*6 + 5*5 + 6*0 + 7*9 + 8*5 + 9*9 = 249

249 除以 11 的余数是 7,即 ISBN 中的最后一个字符。校验字符用于验证 ISBN。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int checkISBN( char[] );
#define size 18L
int main() {
int i,j;
char* s[size] = {
"0-8065-0959-7",
"0-534-37964-8",
"0-618-50298-X",
"0-8065-0959-8",
"0-534-37964-9",
"0-618-50298-5",
"0-534-37964-8",
"0-618-50298-X",
"032121353X",
"0321199553",
"0201794896",
"0870495275",
"0452264464",
"0536901562",
"158901104X",
"080801076X",
"80-902734-1-6"
"158901104X" };


for( i = 0; i < size; i++){
if( checkISBN( s[i] ) == 1 )
printf("%-15s is a valid ISBN \n",s[i]);
else
printf("%-15s is NOT a valid ISBN*****\n",s[i]);
}

putchar('\n'); //write a newline
system("pause");`enter code here`
return EXIT_SUCCESS;
}



int checkISBN( char s[] )
{


int result = 0;
int i;
int n = 1;
int sum = 0;
char ch[10];
int final[10];
int sizeOfArray = strlen(s);


for(i=0; i<sizeOfArray; i++){
if(s[i] == '-'){
++i;}
if(s[strlen(s)-1] == 'X'){
s[strlen(s)-1] = 10;}
ch[i] = s[i];
}

for(i=0; i<10; i++){
final[i] = atoi(&ch[i]);}

for(i=0; i<9; i++){
sum+= final[i]*n;
++n;}


int checkCharacter = sum%11;

if(checkCharacter == final[9]){
result = 1;}
return result;}

最佳答案

#include <ctype.h>

int checkISBN( char s[] ) {
int i, n = 1, sum = 0, checksum;

for(i=0; s[i]; ++i){
if(s[i] == '-')
continue;
if(n<10 && isdigit(s[i]))
sum += n++*(s[i] - '0');
else if(n==10){
if(s[i] == 'X')
checksum = 10;
else if(isdigit(s[i]))
checksum = s[i] - '0';
}
}
return sum % 11 == checksum;
}

还有

"80-902734-1-6", //need comma

关于c++ - 不允许的系统调用 : SYS_socketcall - Error when trying to verify ISBN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21893568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com