간단한 SWAP 함수와 랜덤함수
개구리
질문 제목 : 도대체 뭐가 문제일까요?질문 요약 :만약에 배열이 10개다 이러면, arr[0]~arr[9]까지 1~10의 숫자를 넣은뒤에
스왑함수로 랜덤함수로 임의로 지정한 배열을 서로 섞는 프로그램입니다.
#include stdio.h
#include stdlib.hvoid swap(int *x,int *y);
int randint(int start, int end);
void main(){
int n, i;
int *permut; printf(크기를 입력합시다 (integer n)\n);
scanf(%d,&n);
permut = (int *)malloc(sizeof(int)*n);
for(i=0; in; i++) // 일단 정직하게 1~10까지 삽입
{
permut[i] = i+1; } for(i=0; in; i++);
{
swap(&permut[i], &permut[randint(0,i)]); // 이부분은 수정하지마세요. 이부분을 보여주기
위한 프로그램입니다.
} printf(결과확인\n);
for(i=0; in; i++) // 결과 확인
{
printf(%d\n,permut[i]);
}
}int randint(int start, int end){ // 랜덤 삽입 함수 int result;
result = rand()%((end-start)+1)+start; //스타트부터 엔드까지의 범위를 랜덤으로 뽑아낼 수 있게
return result;
}void swap(int *x,int *y) // 값 바꿔주기
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}출력을 해보면 이상한 -값도 나오고.....분명 정상동작을 해야하는데 왜그런지 모르겠네요 ㅠㅠ고수님들의 조언부탁드립니다.
-
헛소동
네 그부분은 괜찮을것 같습니다