이름궁합 테스트
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int chartoint(char s);
int main(void) {
char name1[100]; char name2[100];
int iname1[100]; int iname2[100];
int len1; int len2;
scanf("%d %d", &len1, &len2);
scanf("%s %s", name1, name2);
for (int i = 0; i < len1; i++) {//문자를 숫자로 변환
iname1[i] = chartoint(name1[i]);
}
for (int i = 0; i < len2; i++) {//문자를 숫자로 변환
iname2[i] = chartoint(name2[i]);
}
int name_sum[200];
int arrflag = 0;
int length = (len1 > len2) ? len1 : len2;
for (int i = 0; i < length; i++) {
if (i<len1) {
name_sum[arrflag] = iname1[i];
arrflag++;
}
if (i<len2) {
name_sum[arrflag] = iname2[i];
arrflag++;
}
}
for (int k = 0; k < len1 + len2 - 2; k++) {
for (int j = 0; j < len1 + len2-1; j++) {
int sumii;
sumii = name_sum[j] + name_sum[j + 1];
if (sumii > 9) {
name_sum[j] = sumii % 10;
}
else {
name_sum[j] = sumii;
}
}
name_sum[len1 + len2 - k-1] = 0;
}
printf("%d%%",10*name_sum[0]+ name_sum[1]);
return 0;
}
int chartoint(char s) {
int in;
switch (s)
{
case 'E':
in = 4;
break;
case 'A': case 'F': case 'H': case 'K': case 'M':
in = 3;
break;
case 'B': case 'D': case 'N': case 'P': case 'Q': case 'R': case 'T': case 'X': case 'Y':
in = 2;
break;
default:
in = 1;
break;
}
return in;
}


while문 사용하여 참조할 수 없는 배열을 참조하게 되면 visual studio에서는 바르게 실행되어도 run time초과(out_of bound)가 발생할 수 있다. 오류가 계속해서 발생할 때는 참조할 수 없는 배열을 참조하려 하는지 살펴보아야 한다.
삼항연산자 ( 조건 ) ? A : B
-> 조건이 참이면 A반환, 아니면 B반환.