(__) 제발 도와주세요.
낮은 자세로 굽신 굽신~
#include <stdio.h>
#include <windows.h>
void ValueComp(int * arr, int x)
{
int y, z = 1, a = 0, b = 1, temp;
for(y = 0; y < x; y++)
{
if(z == 1)
{
while(arr[a] < arr[b])
{
temp = arr[a];
arr[a] = arr[b];
arr[b] = arr[a];
a++;
b++;
if(a == 9)
{
a = 1;
b = 2;
z = 0;
break;
}
}
}else{
while(arr[a] < arr[b])
{
temp = arr[a];
arr[a] = arr[b];
arr[b] = arr[a];
a++;
b++;
if(a == 8)
{
a = 0;
b = 1;
z = 1;
break;
}
}
}
}
}
int main(void)
{
int arr[10];
int x;
for(x = 0; x < (sizeof(arr) / sizeof(int)); x++)
{
printf(\"[%2d/%2d]input integer : \", x + 1, (sizeof(arr) / sizeof(int)));
scanf(\"%d\", &arr[x]);
}
ValueComp(arr, x);
printf(\"\\n-------------\\n\");
for(x = 0; x < (sizeof(arr) / sizeof(int)); x++)
{
printf(\"%d \", arr[x]);
}
printf(\"\\n\");
system(\"pause\");
return 0;
}
코드가 병신같죠 ㅠ. ㅠ
맞습니다. 제가 병신입죠 ㅠ .ㅠㅠㅠㅠㅠ
이거 10개의 정수를 입력받아서 큰 순서대로 정렬해서 출력하는 소스에요.
나름 노력을 많이 해봤는데, 답이 안보여여 ㅠ.ㅠ
어차피 배열길이 10 정해져있는데 sizeof쓴 건 애교.
도와주세요!!
뭐하는짓이지?
이런 코드는 수정할 가치도 없는건가요 ㅠ ㅠ.. 아예 다시 짜야하나..
for(x = 0; x < (sizeof(arr) / sizeof(int)); x++)
이건뭐?
그거 arr의 크기를 int의 크기로 나누는거니깐.. 걍 for(x = 0; x < 10; x++) 하고 완전 동일해요 ㅋㅋㅋ;;
그래 이제 불필요한부분을 수정해봐
창작력은 뛰어나네
for문 하고 if문 적절히 쓰면됨
ValueComp 함수가 너무 ... 기본적인 정렬 알고리즘을 토대로 ValueComp 함수를 구현해보세요.
시발 드뎌 풀었어!!! 풀었다고!!! 풀어
조언 주신 분들 감사해요 ㅋㅋㅋ 정렬알고리즘을 모른체로 걍 닥치는대로 짜봤어요 ㅋㅋㅋ;; arr[b] = arr[a]; 부분을 arr[b] = temp; 로 바꾸고, if(a == 9)를 if(a == 10)으로, if(a == 8)을 if(a == 9)로 ... ㅋㅋㅋ
막힐때는 미친 척 하고, 디버깅 한줄씩 해보니 확실히 낫네요 ~
헐... 1 2 3 4 5 6 7 8 9 10 입력했을 때는 역순으로 출력되는데 랜덤하게 막 집어넣으니 개판이네 ㅠ .ㅠ .. 문제는 다시 원점으로..
다시 보니 문제는 알겠는데 이걸 수정하려니 또 막연하네영.. 하아...
랜덤으로 입력을 받은 이후에 그걸 내림차 정렬하세요. 그담에 출력하면 끝.
가장 쉬운 알고리즘을 알려줄게. 2중 for문을 돌려봐. 첫번째 값이랑 2,3,4,5,6,7,8,9랑 다 검사해서 만약 후자가 클 경우 둘의 위치를 바꿔. 그리고 두번째값이랑 3,4,5,6,7,8,9랑 검사하고, 다음엔 세번째값이랑 4,5,6,7,8,9를 검사하고 최종적으론 젤 큰게 앞에 오고 젤 작은게 뒤에 오겠지? 그리고 for(x=0; x<(sizeof(arr) / sizeof(int); x++) 이건 왜하는거냐 허세냐.
역순인데 무슨 정렬을 하고 지랄을하네 비트카운터 어떰?
위에횽 올만이네 근데
일광면//하이. 졸업해서 다시왔음. 근데 수가 랜덤으로 섞여있는데 정렬안하고 가능?
아 글에는 랜덤하게 란 말 없구만.. 밑에 댓글보고 확인함