일단, char배열에서 마지막 null이 들어갈 칸을 위해서 1칸을 크게 선언해주셔야 합니다.
또한, int arr[26] = {0, }; 처럼 선언 해주셔야 arr[1~25]도 0으로 선언이 됩니다.
그리고 2번째 포문은 0~len까지 도는게 아니고 알파벳 개수인 26개를 도는게 맞다고 생각됩니다.
1157번 - 단어 공부
#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;
}
댓글을 작성하려면 로그인해야 합니다.
leeym95 7년 전
도대체 뭐가 문젠가여......