int check(int *ISBN) { int i, j, sum; for (i = 0; i < 6; i++) { ISBN[i * 2 + 1] = ISBN[i * 2 + 1] * 3; } for (j = 0, sum = 0; j < 13; j++) sum += ISBN[j]; if (sum % 10 == 0) return 1; else return 0; } int main() { int ISBN[13] = { 0, }; int i; for (i = 0; i < 6; i++) { scanf_s("%d", &ISBN[i * 2]); scanf_s("%d", &ISBN[2 * i + 1]); } scanf_s("%d", &ISBN[12]); if (check(ISBN) == 1) printf("success"); else printf("fail"); return 0; } 원래 코드가 뭐가 틀렸을까요?ㅋㅋ
scanf_s는 scanf로 바꾸세요
아! 우와 감사합니다! 정말 감사합니다 코로모님 ㅠㅠ 비교해봤는데 2*i+1 부분이랑 배열 초기값에 0 뒤에 콤마인데 이거 뒤에 콤마도 넣어줘야 뒤의 배열까지 다 0으로 초기화 되는거예요?? 컴알못 구원 부탁드리겠습니다..
아 그렇구나!!!!!!! 0부터 시작이니까 2*i+1 이 짝수번째 자릿수의 숫자가 되는군요. 정말 감사합니다!!!!!!!!
일단 판별공식이 a+3b+c+3d...이런 식이니깐 2*i라고 쓰면 3a+b+3c처럼 계산되 안되는 거고, {0,}은 모든 배열을 0으로 초기화하지만, {1,}같은건 첫 요소만 1이고 나머진 0
그리고 굳이 0 으로 초기화안해도 scanf로 채워지니깐
코로모님 덕분에 3시전에 잘 수 있을 것 같아요. 이제 두문제밖에 안남았습니다! ^^/