나는 이것을 몇 시간 동안 인터넷으로 검색했지만 행운은 없습니다.반송 전 정답, 반송 후 부정확
나는 아주 간단한 방법을 호출하고 올바른 값을 반환하는 표준 C를 사용하고 있지만 반환 후에는 값이 완전히 잘못되었습니다.
전화 :
//declare the gross and ficaTax variables
double gross;
double ficaTax;
//calculate the gross and the ficaTax
gross = calcGross(payRate, hours); printf("%f\n", gross); //DELETE
방법 : 나는에 시도하고 그것을 해결하는 방법 밖으로 값을 인쇄하고있어,하지만 난 그것을 알아낼 수 없습니다
double calcGross(double rate, double hours){
double gross;
//if the person didn't work more than 40 hours
if(hours <= 40.0){
gross = hours * rate;
}
//if the person did work more than 40 hours
else{
gross = 40.0 * rate + ((hours - 40.0) * rate * 1.5);
}
printf("%f \t", gross);
return gross;
}
. 여기서, 출력 :
(올바른) (부정확 한 후 리턴)
529.600000, -858993459.000000
1371.522500, 171798692.000000
100.000000, 0.000000
1515.710000는 171798692.000000
977.255000, 1030792150.000000
5631.360000, 687194767.000000
7502.400000, 1717986918.000000
4335.106000, 584115553.000000
1924.181500, -618475291.000000
683.084000, 137438953.000000
1348.424000, 755914245.000000
1369.200000 -85 8993460.000000
529.600000, -858993459.000000
4441.522500, -1030792152.000000
100.000000, 0.000000
1882.710000,
내 유일한 추측 171798692.000000했다 하나 내 더블 포스트 반환에 너무 오래했다 더블의 길이에 맞았지만, 더블 프리 - 리턴에 그것을 저장하고 정확하게 프린트했다. 이 경우 나는 그것을 고치는 법을 알 수 없었다. 내 다른 추측은 내가 잘못된 포스트 - 리턴 (post-return)을 프린트하고 있지만, 같은 방식으로 프린트 중이다.
저는 Linux를 사용하고 있고 gcc 컴파일러가 중요합니다. 어떤 도움을 주시면 감사하겠습니다. 나는이 겉으로는 간단한 문제를 몇 시간 동안 고치려고 노력해왔다.
컴파일러에서 경고를 발행합니까? 호출하기 전에 함수의 프로토 타입을 제공 했습니까? – FatalError
코드를 사용하는 것과 정확히 똑같은 코드를 제공하고 있습니까? 출력하고있는 변수 이름을 잘못 입력하거나 함수 호출과 printf() 사이에 새로운'gross'를 선언 할 가능성은 없습니다. –
더블을 인쇄하려면 % lf를 시도하십시오. – John3136