C 언어 순서정리 오류 질문
조회수 478회
// C 언어
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int ArrRoom[10] = {0,};
srand(time(NULL));
for (int i = 0; i < 10; i++) // ArrRoom 배열에 1 ~ 10까지 난수로 입력함
{
int ran = (rand() % 10) + 1;
ArrRoom[i] = ran;
}
for (int i = 0; sizeof(ArrRoom)/sizeof(int)-1; i++) // 순서 정리
{
int change = 0; // 값 저장 변수
if (ArrRoom[i] > ArrRoom[i+1])
{
change = ArrRoom[i+1];
ArrRoom[i+1] = ArrRoom[i];
ArrRoom[i] = change;
}
}
for (int i = 0; sizeof(ArrRoom)/sizeof(int); i++) // 실행결과 출력
{
printf("%d ",ArrRoom[i]);
}
return 0;
}
1~10 까지 난수를 받아 순서대로 정렬하려 하는데 실행하면 "Segmentation fault (core dumped)" 라는 오류가 뜨는데 왜 이렇게 나오는지 모르겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
for 문법을 다시 한번 살펴보세요. 또한 상수는 #define 을 활용하세요.
#include <stdio.h> #include <stdlib.h> #include <time.h> #define COUNT 10 int main() { int ArrRoom[COUNT] = {0,}; srand(time(NULL)); for (int i = 0; i < COUNT; i++) // ArrRoom 배열에 1 ~ 10까지 난수로 입력함 { int ran = (rand() % COUNT) + 1; ArrRoom[i] = ran; } for (int i = 0; i < sizeof(ArrRoom)/sizeof(int); i++) // 순서 정리 { int change = 0; // 값 저장 변수 if (ArrRoom[i] > ArrRoom[i+1]) { change = ArrRoom[i+1]; ArrRoom[i+1] = ArrRoom[i]; ArrRoom[i] = change; } } for (int i = 0; i < sizeof(ArrRoom)/sizeof(int); i++) // 실행결과 출력 { printf("%d ",ArrRoom[i]); } return 0; }
댓글 입력