main()
{
 int arr[10],i,j=0,temp,sin_stk=0,duo_stk=0,sin_arr[10],duo_arr[10];

 printf("10개의 정수를 입력\n");

 for(i=0;i<10;i++)
 scanf("%d",&arr[i]);
  
 for(j=0;j<10;j++){
  if(arr[j]%2!=0){
   sin_arr[j]=arr[j];
   printf("%d",sin_arr[j]);
   sin_stk++;} }
 puts("");

 for(i=0;i<10;i++){
   if(0==arr[i]%2){
   duo_arr[i]=arr[i];
   printf("%d ",duo_arr[i]);
   duo_stk++; }
 }
 puts("");

 for(i=0;i<sin_stk-1;i++){
   for(j=0;j<(sin_stk-i)-1;j++){
  if(sin_arr[j]>sin_arr[j+1]){
   temp=sin_arr[j];
   sin_arr[j]=sin_arr[j+1];
   sin_arr[j+1]=temp;}
   }
 }
   for(j=0;j<sin_stk;j++)
   printf("%d ",sin_arr[j]);

 puts("");
 
 for(i=0;i<duo_stk-1;i++){
   for(j=0;j<(duo_stk-i)-1;j++){
  if(duo_arr[j]>duo_arr[j+1]){
   temp=duo_arr[j];
   duo_arr[j]=duo_arr[j+1];
   duo_arr[j+1]=temp;}
   }
 }
  for(j=0;j<duo_stk;j++)
  printf("%d ",duo_arr[j]);


}

 

전체 소스입니다.

 

목적은 기존의 배열에 10개의 정수를 입력하고 기존의 배열에서 홀수 짝수를 구분해서 다른 배열에 넣어주는게 핵심입니다.

 

for(j=0;j<10;j++){
  if(arr[j]%2!=0){
   sin_arr[j]=arr[j];
   printf("%d",sin_arr[j]);
   sin_stk++;} }
====홀수를 골라내는 부분====

 for(i=0;i<10;i++){
   if(0==arr[i]%2){
   duo_arr[i]=arr[i];
   printf("%d ",duo_arr[i]);
   duo_stk++; }
====짝수를 골라내는 부분====

 

그런데 조건이 잘못되어서 배열 1,3,5,7,9..이런 곳에만 값이 들어가고 나머지 부분은 쓰레기값이 남게 되는게 문제입니다. 홀수 짝수 전부 마찬가지예요.

제가 원하는건 차례대로 1,2,3...이런식으로 들어가길 원하는데 도통 조건을 어떻게 바꿔야 되는지 모르겠네요 ㅇㅅㅇ;;