leeym95   4년 전

도대체 뭐가 문젠가여......

zych1751   4년 전

일단, char배열에서 마지막 null이 들어갈 칸을 위해서 1칸을 크게 선언해주셔야 합니다.

또한,  int arr[26] = {0, }; 처럼 선언 해주셔야 arr[1~25]도 0으로 선언이 됩니다.

그리고 2번째 포문은 0~len까지 도는게 아니고 알파벳 개수인 26개를 도는게 맞다고 생각됩니다.

leeym95   4년 전

흠.... 고쳐봐도 입력을 한후에 결과값이 아무것도 안떠버리네요.....\

컴파일 에러는 안뜨구요...

zych1751   4년 전

아 그리고 깜빡했네요... if문뒤에 {}가 없다면 한문장만 실행이 됩니다.

근데 그걸 고쳐봐도 크게 문제없는걸 보면 다른게 문제가 있나봐요...

아직 찾지 못했습니다, ㅠㅠ

zych1751   4년 전

ㅠㅠㅠㅠ 3번째 포문도 0~25까지만 돌면 해결이 되네요....

zych1751   4년 전

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    char* str=(char*)malloc(sizeof(char)*1000001);
    int arr[26]={0, };
    int i, len, most, count=0, k;
    scanf("%s", str);
    len=strlen(str);
    for(i=0; i<len; i++)
    {
        if(str[i]>=97)
            str[i]-=32;
        arr[str[i]-65]++;
    }
   
    most=arr[0];
    k = 0;
    for(i=0; i<26; i++)
    {
        if(most<arr[i])
            most=arr[i], k=i;
    }
    for(i=0; i<26; i++)
    {
        if(most==arr[i])
            count++;
        if(count==2)
        {
            printf("?");
            return 0;
        }
    }
    printf("%c\n", k+65);
    return 0;
}

댓글을 작성하려면 로그인해야 합니다.