아까 글올렸던
교실 자리 랜덤 배치 프로그램 만드려는중인데요 ..
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int seat[6][6];
char name[36][7];
int n;
char * na[36];
void shuffle(void) ;
void swap(char *a, char *b) ;
int main(void)
{
srand((unsigned)time(NULL));
int i;
int j;
printf(\"교실 좌석의 행과 열을 각각 입력하고 Enter\\n\");
printf(\"행(6~7) : \");
scanf(\"%d\",&i);
printf(\"열(6~7) : \");
scanf(\"%d\",&j);
if(i==6 && j==6)
{
for(n=0;n<36;n++)
{
printf(\"이름 입력(%d) : \",n+1);
scanf(\"%s\",name[n]);
}
shuffle();
shuffle();
}
for(int k=0;k<36;k++)
printf(\"%s\\n\",na[k]);
return 0;
}
void swap(char *a, char *b)
{
char tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void shuffle(void)
{
int i, j;
for(i=0;i<36;i++)
{
j=rand()%36;
swap(&name[i][7],&name[j][7]);
}
}
이렇게해서 36명의 학생명을 입력해준 후
셔플로 36명의 이름을 넣은 배열을 뒤섞으려고 하는데
결과값이 자꾸 nu11이라는 모양으로 36개가 나오네요 ... 뭐가 원인일까요?
중간까지 보다가 내렸는데.. 뜬금없이 전혀 상관없는 na는 왜 출력하시는건지??
shuffle 안에 swap함수 인자도 뭔가 이상하니 수정해야 할듯.
na는 셔플후 잘됬나 확인해보려고 출력해보는거에요 .,..
name을 셔플해놓고 왜 na를 출력하냐는 거지영.
아앗!! ㅋㅋㅋㅋ 포인터지정을 해준다는게 그만 감사합니다 ㅜㅜ