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...이런식으로 들어가길 원하는데 도통 조건을 어떻게 바꿔야 되는지 모르겠네요 ㅇㅅㅇ;;
오늘 이거 해결못하면 찝찝해서 잠이 안올거같아요 ㅠㅠ
오 이게무슨 헛소리인가 곰곰히 생각하다가 알아낸건데 다른 지역변수 cnt같은거 한개 선언해서 들어올때마다 ++하고싶다는 말같은데 sin_arr[cnt++] =arr[j] 아님
http://lgstar.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다. - DCW