二桁になる場合はそれぞれの桁を足す。11なら2のようにする
奇数桁の数字をたしたものをoddとする
even + odd は10 で必ず割り切れるとする。
その場合に例えば174987634726437xのように打ち込んだ場合xは何かというプログラムを作っています。
if(*(number[j]+je)<=4){
で間違ったことをやっているのは分かったのですが、なぜ間違っているのか分かる方教えてください。よろしくお願いします。
#include <stdio.h>
#include <stdlib.h>
int main(void){
int N;
int i;
int j,je,jo,x;
int even=0;
int odd=0;
int goukei,goukeix;
scanf("%d",&N);
char *number[100];
for(i=0;i<N;i++){
scanf("%s",number[i]);
}
for(j=0; j<N; j++){
for(je=1;je<=13;je=je+2){
if(*(number[j]+je)<=4){
exit(1);
even=even+*(number[j]+je)*2;
}else{
even=even+(*(number[j]+je)*2-10+1);
}
}
for(jo=0;jo<=14;jo=jo+2){
odd=odd+*(number[j]+jo);
}
}
goukei=even+odd;
for(x=0;x<10;x++){
if(x<=4){
goukeix=goukei+(x*2);
}else{
goukeix=goukei+((x*2)-10+1);
}
if(goukeix%10==0){
printf("%d\n",x);
break;
}
}
return 0;
}