저는 C를 처음 접했고 3 개의 숫자를 비교하고 가장 큰 숫자를 반환하는 매우 기본적인 프로그램을 작성하려고합니다.
그러나 if 함수로 일부 텍스트를 인쇄하려고하면 2 if를 건너 뛰고 else로갑니다. 나는 그것보다 더 복잡하다고 말할 수있다. :)
좋아, 여기 내 코드가 있습니다.
#include <stdio.h>
int a;
int b;
int c;
int max(int a, int b, int c) {
if (a>b && a>c) {
return a;
}
else if (b>a && b>c) {
return b;
}
else {
return c;
}
}
int main()
{
int d;
d = max(44,8,16);
if (d==a) {
printf("a");
}
else if (d==b) {
printf("b");
}
else {
printf("c");
}
}
"c"만 표시됩니다. 다른 건 없습니다. "max"함수의 반환 값에 따라 "a", "b"및 "c"문자를 보려면 if 함수에 무엇을 써야합니까?
최대 기능을 그대로 유지하고 싶습니다. 그래서 그런 일을 할 수 있습니까?
미리 감사드립니다 ..
당신은 어떤 값을 할당하지 않은 a
, b
그리고 c
. 그리고 그들은 전역이기 때문에 암시 적으로 0으로 초기화됩니다. 또한 이러한 전역은 max
같은 이름 을 가진 매개 변수와 동일하지 않습니다 . 매개 변수 는 전역을 마스킹 합니다.
전역을로 이동 main
하고 값을 할당 한 다음 변수를에 전달합니다 max
.
int main()
{
int a=48, b=8, c=16;
int d;
d = max(a,b,c);
...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다