다음 소스에서 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);
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700695 | 간단한 메모장 구현을 할려고 하는데요 (9) | 늘솜 | 2025-07-07 |
2700668 | c언어 질문입니다. 도와주세요~ (3) | 가자 | 2025-07-07 |
2700639 | 한글입력받아서 ㄱㄴㄷ순서대로출력하는법좀 | 두빛나래 | 2025-07-06 |
2700610 | 정말 기초적인 더하기,여백 문제 help | 무슬 | 2025-07-06 |
2700562 | 함수포인터에서요 (7) | 소심한여자 | 2025-07-06 |
2700530 | 전처리문 질문입니다. (1) | 아놀드 | 2025-07-05 |
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |