다음 소스에서 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);
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2690486 | 문자열과 문자형이요 ~ | 다스리 | 2025-04-05 |
2690344 | 일본어 주석 깨짐 문제 (3) | 연하얀 | 2025-04-04 |
2690314 | 암호문 만들기 -비제네르- | 이퓨리한나 | 2025-04-03 |
2690292 | 왕초보자의 질문!!!!!! 도와주세요 (1) | 하랑 | 2025-04-03 |
2690269 | 정올 문제 인데.. 흠 | 반월 | 2025-04-03 |
2690237 | sizeof에서 short형을 썻는데 왜 4byte가 나올까요? (1) | 바나나 | 2025-04-03 |
2690183 | 문자열과 포인트 비교 (2) | 미즈 | 2025-04-02 |
2690154 | a -48 ? | 희미한눈물 | 2025-04-02 |
2690094 | 테트리스 질문요. | 지후 | 2025-04-01 |
2690066 | 문자열비교!! (1) | 매디 | 2025-04-01 |
2689888 | 좀도와주세요;; ㅠㅠ | 사람 | 2025-03-30 |
2689856 | 메뉴 그리는 거 질문 | 나라빛 | 2025-03-30 |
2689831 | c언어 프로그램 추천 | 하연 | 2025-03-30 |
2689801 | c언어 time.h에서 작동이 중지되었습니다. | 하람 | 2025-03-30 |
2689772 | 2차원 배열의 배열명에 대해서.. | 옆집꼬마야 | 2025-03-29 |
2689740 | 게임 TCP소켓 질문 (2) | 불꾼 | 2025-03-29 |
2689711 | 반복문 모래시계 | 한뎃집 | 2025-03-29 |
2689685 | 경우의 수에 따른 결과 처리 질문드립니다. (2) | 다흰 | 2025-03-29 |
2689655 | .exe에 아이콘 넣는 법좀 알려주세요 | 연하얀 | 2025-03-28 |
2689631 | #define 전처리문에 대해서 (2) | 사랑은아픔 | 2025-03-28 |