C언어/주차별 문제

[4주차] 100점짜리 인생

슈슈버거 2023. 4. 19. 22:55

문제


내가 작성한 코드

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

int calc(char arr[]){
    int i = 0;
    int sum = 0;

    while(arr[i]!=NULL){
        sum += arr[i]-96;
        i++;
    }

    return sum;
}

int Process(char arr1[], char arr2[] ){
    int arr1num;
    int arr2num;

    arr1num = calc(arr1);
    arr2num = calc(arr2);

    if(arr1num>=arr2num){
        return 0;
    }
    else{
        return 1;
    }
}

int main() {
    char arr1[20];
    char arr2[20];

    scanf("%s", &arr1);
    scanf("%s", &arr2);

    int mode = Process(arr1, arr2);

    if(mode == 0){
        printf("%s\n", arr1);
    }
    else{
        printf("%s\n", arr2);
    }

    return 0;
}

알파벳에 각각 숫자를 할당해주고 알파벳 한 글자씩 수로 변환해서 그 문자열의 총합을 구하는 문제다

char형 배열 2개 만든 다음에 각각 입력받고

calc 함수를 이용해서 문자열의 수 합을 구해주고

process 함수를 이용해서 두 문자열의 합을 비교한 다음에 무엇이 더 큰지를 나타내는 정수를 반환해줬다

 

그럼 main에서 그 수에 따라 첫번째나 두번째 문자열 값을 출력하게 해주었다.