[완료]고수님들, c언어 뉴비좀 도와주세요ㅜㅜ
글쓴이: dltjdals / 작성시간: 금, 2018/11/16 - 11:59오후
안녕하세요, c언어 뉴비입니다.
문제를 풀던 도중
에러코드 :timeout: the monitored command dumped core make: *** [cmd] 오류 139
가 뜨더군요, 검색해보니 잘못된 메모리에 접근했을 때 뜨는 오류인것 같은데
어디가 문제인지 모르겠네요 ㅜㅜ;;
코드가 많이 난잡하고, 제가 문제 설명도 잘 못하지만, 고수님들 부탁드립니다
아래 문제, 코드, 코드설명 달아두겠습니다
문제설명 :
숫자들이 차례대로 입력될 때 숫자들을 정렬하면
연속된 수열로 표현할 수 있는지 판별 가능한 프로그램을 작성하시오.
(연속된 수열 : 항상 i번째 숫자의 값이 (i+1)번째 숫자보다 1이 작은 정수로 이루어진 수열)
입력 :
첫 번째 줄에 입력될 숫자들의 갯수 (1~100 , ex : 3)
두 번째 줄에 숫자들 (공백으로 구분되어 입력됨 ex :1 2 3)
출력 : 연속적인 수열로 표현될 수 있다면 YES를 출력하고, 그렇지 않다면 NO를 출력함.
입/출력 예시
입력1 :
5
1 2 5 3 4
출력1 : YES
입력2 :
5
1 2 6 3 4
출력2 : NO
코드 :
#include <stdio.h> void change (int *a, int *b); // 한 int 형 값과 다른 int형 값을 바꾸는 함수. void Sort(int data[], int n;); // 배열을 정렬하는 함수 int main() { int input[100] = {0, }; // 숫자들이 입력 될 배열 int a, i, fal = 0; // i: 입력될 숫자 갯수, fal : YES/NO 판별 때 사용 scanf("%d", &i); // 입력될 숫자의 갯수 입력 do { scanf("%d", &input[a]); // 숫자들 입력 a++; } while(getc(stdin) != ' ' && a < i); // 공백문자 아니고,a가 입력될 숫자의 갯수 보다 작을 시, 입력 Sort(input, i); // 숫자들 정렬함. for(a=0; a<i; a++); if(input[a] + 1 != input[a+1]) { // a번째 값이 a+1의 값보다 1 크지 않을 때 printf("NO"); // NO 출력 fal = 1; // NO } if(fal == 0) // 만약 NO가 출력되지 않았더라면 printf("YES"); // YES 출력 return 0; } void change (int *a, int *b) { int t = *a; *a = *b; *b = t; } void Sort(int data[], int n) { // (숫자들의 배열, 입력된 숫자들의 갯수) int a, b = 0; for(a= n-1; a >0; a--); for( b=0; b<a; b++) if(data[b] > data[b+1]) change(&data[b], &data[b+1]); }
Forums:
for 문 질문. 세미콜론은 일부러 넣은 건가요
for 문 질문. 세미콜론은 일부러 넣은 건가요?
제가 실행할 때는
timeout: the monitored command dumped core make
이런 에러는 안 나는데요?
덧.
저는 수학과 나왔는데 "연속된 수열"이라는 용어는 여기서 처음 보는 거 같네요.
세벌 https://sebuls.blogspot.kr/
감사합니다
감사합니다 말씀대로 세미콜론 빼고 몇몇 빠진부분 다시 고쳐보니 에러 안나네요^^
소중한 시간 내주셔서 감사합니다 ^^
...
실행시켜 본거는 아니지만, 얼핏 보니 for 문 뒤에 세미 콜론은 실수로 넣으신거 같습니다.
^^
저도 모르게 세미 콜론을 넣어버린 것 같습니다. 역시 뉴비라 실수가 많네여;;;
고치니 잘 작동하네여, 소중한 시간 내주셔서 감사합니다^^
댓글 달기