혼자서 열강 독학하면서 매일매일 조금씩 해나가고 있어요. 흑흑
문자열을 입력받아서 그 문자열에 있는 문자들의 아스키코드값을 비교해서 제일 큰 값을 찾아서 출력하는 문제입니다.
열강에 나온 답을 보니 이해는 됐는데, 제가 짠 코드는 왜 안돌아가는지 모르겠어요. 아, 정확히 말하자면 실행까지는 되는데, 문자열 입력하면 GG......
뭐가 문제일까요...흑흑
제 생각에는 배열에 저장된 문자열이 char형에다가, 배열안에 저장되어 있는게 문자인데, 문자끼리 비교하라고 하니 컴퓨터가 에러 걸리는게 아닌가 싶어요.
하지만 컴터에서 문자를 인식할때는 걍 아스키 코드로만 받아들이니깐 문자끼리 누가 더 큰지 비교해봐도 될것도 같고......엉엉
#include <stdio.h>
int main(void)
{
int i,len;
char max;
char str[50];
printf("문자열을 입력하시오\n");
scanf("%s",str);
while(str[len]!=NULL)//문자열 길이 구함
{
len++;
}
printf("문자열의 길이는 %d", len);
for(i=0;i<len;i++)//문자열에 있는 각각의 문자의 아스키 코드값 출력
{
printf("입력한 문자열의 %d 번째 문자의 아스키코드는 %d입니다.", i, str[i]);
}
for(i=0;i<len;i++)//제일 큰 문자 골라내기
{
if(i==len)//i번째가 문자열의 끝이라면 함수 탈출
break;
max=(str[i]<str[i+1])?str[i+1]:str[i];//하나씩 비교해서 더 큰 문자를 max에다가 저장
}
printf("아스키 코드값이 제일 큰 문자는 %c이고, 아스키 코드값은 %d입니다.\n",max,max);
return 0;
}
len
초기화 존나 중요
쏭쌍// 웃기려고한말이겠지 님 안녕하세요. 봇테스트
char max = 0; for ( i = 0 ; i < len ; i++) { ....... if ( max < str[i] ) max = str[i]; ...... }
우와 초기화;;; 맞네요 ㅋㅋ 감사합니다.