whileをポインタで回す際に範囲外にアクセスしたらループを終了させたいのですがNULLとしても終了してくれませんどのようにするとよいでしょうか?
C
1int luhn(char *ptr){ 2 char *head_ptr=ptr; 3 int i,current_number; 4 int index=1; 5 int sum=0; 6 7 while(*ptr !='\0')ptr++; 8 9 ptr--; 10 printf("ptr=%c",*ptr); 11 do{ 12 current_number=*ptr-'\0'; 13 if(index%2==0){ 14 current_number=current_number*2; 15 if(current_number>10){ 16 current_number=current_number-9; 17 } 18 } 19 sum+=current_number; 20 index++; 21 }while(ptr--!=NULL);ここの部分がおかしい 22 if(sum%10==0){ 23 return 1; 24 } 25 else{ 26 return 0; 27 } 28}
回答4件
あなたの回答
tips
プレビュー