백준 문제 런타임에러 조언좀 부탁드립니다.
글쓴이: Post_Ada / 작성시간: 월, 2017/07/10 - 8:29오후
문제: 영어 대소문자와 띄어쓰기만으로 이루어진 문장이 주어진다.
이 문장에는 몇개의 단어가 있을까?이를 구하는 프로그램을 작성하시오. 단, 단어는 띄어쓰기 하나로 구분된다고 생각한다.
입력: 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문장이 주어진다. 이 문장의 길이는 10000000 을 넘지 않는다.
#include <stdio.h> #include <stdlib.h> // malloc을 사용하기 위한 헤더파일 #include <string.h> // strlen과 strcpy을 사용하기 위한 헤더파일 #define MAX 1000000 int main() { char temp[MAX]; // 문자열을 입력 받기 위한 충분한 크기의 문자 배열을 선언한다. int count=0; gets(temp); // 문자열을 입력 받는다. int i=0; while (1) { if (temp[i] == '\0') break; if (temp[i] == 32) count++; i++; } printf("%d", ++count); return 0; }
제한시간은 2초인데 자꾸 런타임 에러가 나네요, 어느 부분을 수정하여야될까요?
Forums:
참고해보세요.
1. 오류가 발생하지 않을때 까지. 한줄 씩 지워봅니다.
2. 너무 큰 배열 크기인지 변경 해봅니다. i 값도 확인해 봅니다.
3. C 에서는 변수 선언을 맨 위에 해야 하기도 합니다. 초기화가 필요하기도 합니다.
웹 C 컴파일러
http://codepad.org/Hc0wDjYr
gets() 함수 설명. - 인자값 / 리턴값 / 오류값 확인
https://www.joinc.co.kr/w/man/3/gets
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
일단 눈으로만 봐서는 MAX 값이 문제 조건보다 0이
일단 눈으로만 봐서는 MAX 값이 문제 조건보다 0이 하나 빠졌네요.
좋은 하루 되세요!
댓글 달기