다음 소스에서 qosrt를 뺏을때 값이 차이가 나는 이유
반월
질문 제목 : 다음 소스에서 qosrt를 뺏을때 값이 차이가 나는 이유
qsort를 빼면 최종값이 42로 출력되고요 넣으면 최종값이 53.6으로 출력이 됩니다. 이게 어떤 차이가 있는 건가요?
질문 내용 : 밑에 소스는 제가 과제로 찾아낸 소스인데요. 여기서 qsort를 빼면 위에 요약 부분에 적은 것처럼 값이 넣었을때와 다르게 나옵니다. 이게 어떤 차이가 나서 이런 결과가 나오는 건가요? 혹시 퀵소트의 장점과 관련이 있는 건가요? 아시는분 답글 달아주십시오. 급합니다.
#include stdio.h
#include stdlib.h
typedef struct item
{
int hour;
int value;
}item;
int compare(const void *x, const void *y)
{
item *i1 = (item *)x, *i2 = (item *)y;
double ratio1 = (*i1).value*1.0 / (*i1).hour;
double ratio2 = (*i2).value*1.0 / (*i2).hour;
if(ratio1 ratio2)
return 1;
else if(ratio1 ratio2)
return -1;
else
return 0;
}
int main()
{
int items;
printf(오늘의 목표 숙제 잠 공부 간식 게임 운동 밥.);
printf(오늘 할 계획의 수를 입력하세요. : );
scanf(%d,&items);
item *i=(item*)malloc(sizeof(item)*items);
int iter;
for(iter=0;iteritems;iter++)
{
printf(순서대로 시간과 그것의 가치를 적으시오. : );
scanf(%d%d,&i[iter].hour,&i[iter].value);
}
qsort(i,items,sizeof(item),compare);
int maxhour;
printf(오늘 할 최대의 시간은? : );
scanf(%d,&maxhour);
double value = 0.0;
int presenthour = 0;
for(iter=0;iteritems;iter++)
{
if(presenthour + i[iter].hour maxhour)
{
presenthour = presenthour + i[iter].hour;
value += i[iter].value;
}
else
{
int remaining = maxhour - presenthour;
value += i[iter].value*remaining *1.0/i[iter].hour;
break;
}
}
printf(계산을 해서 12시간 동안 달성할수 있는 최대 값은 %.6lf 이다.\n,value);
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2669003 | 다음 소스에서 qosrt를 뺏을때 값이 차이가 나는 이유 | 반월 | 2024-09-20 |
2668976 | 제곱승을 구하는 것 (1) | 소유 | 2024-09-20 |
2668949 | 님들 이거 도데체 뭐틀린건지좀 알려주세요. | 큰재 | 2024-09-19 |
2668901 | for문 한개로 속 빈 다이아 만들기 | 키클 | 2024-09-19 |
2668873 | 재귀 알고리즘을 재귀 없이 만드는 방법 (3) | 희1미햬 | 2024-09-19 |
2668843 | 형변환에 대해 질문좀 드립니다. | PrinceSs | 2024-09-18 |
2668761 | C언어로 어떻게 게임을 코딩하죠? (3) | 큰꽃 | 2024-09-18 |
2668733 | C언어 초봅니다. ㅜㅜ 간단한 이 코드 보시고 주석 좀 달아주실 수 있을까요? | 꽃은별 | 2024-09-17 |
2668702 | api 문서.. (1) | 너만을 | 2024-09-17 |
2668669 | [C]%3d란 무슨의미를 가지나요? | 독특한 | 2024-09-17 |
2668615 | 2차방정식 근 구하는 프로그램 질문입니당 ㅠ (1) | 삐용삐용 | 2024-09-16 |
2668560 | fgets함수 출력할때.. | 민트맛사탕 | 2024-09-16 |
2668508 | c언어 공부법~~ | 옆집오빠야 | 2024-09-15 |
2668460 | 2차원배열 사용자정의 함수이용하여 동적할당 (1) | 울트라 | 2024-09-15 |
2668434 | 반석차랑 전체석차 어케 구하죠? | 내꺼하자 | 2024-09-15 |
2668412 | return 용도 | 유리 | 2024-09-14 |
2668383 | 열혈강의C 연산자 연습문제 관해서 질문드려요. (1) | 흰추위 | 2024-09-14 |
2668329 | 게임의 제작 방법과 소스를 어떻게 알 수 있을까요? | 꽃내 | 2024-09-14 |
2668301 | do while질문이요 | 댓걸 | 2024-09-13 |
2668223 | C 언어 도와주세요 ..ㅜ.ㅜ (1) | 제나 | 2024-09-13 |