어렵네요..삼각형 원 사각형 사다리꼴...
탄성
질문 제목 : 원,사각형,사다리꼴,삼각형
결과값이 무조건 0.00으로만 나옵니다질문 내용 :
제가 짠 소스는
#include stdio.h
float rectangle(int x,int y);
float circle(int r);
float triangle(int x,int y);
float trapezoid(int x,int y,int h);
int main(void)
{
int input, x, y, h;
printf(polygon calculator\n);
printf(1. rectangle\n);
printf(2. circle\n);
printf(3. triangle\n);
printf(4. trapezoid\n);
printf(======);
scanf(%d,&input);
switch(input)
{
case 1:
printf(input parameter x : );
scanf(%d, &x);
printf(input parameter y : );
scanf(%d, &y);
printf(result : %.2f\n, rectangle(x, y));
break;
case 2:
printf(input parameter radius : );
scanf(%d, &x);
printf(result : %.2f, circle(x));
break;
case 3:
printf(input parameter x : );
scanf(%d, &x);
printf(input parameter y : );
scanf(%d, &y);
printf(result : %.2f, triangle(x, y));
break;
case 4:
printf(input parameter x : );
scanf(%d, &x);
printf(input parameter y : );
scanf(%d, &y);
printf(input parameter h : );
 sp; scanf(%d, &h);
printf(result : %.2f, trapezoid(x, y, h));
break;
default:
printf(잘못입력하셨습니다..\n);
}
return 0;
}
float circle(int x)
{
return 3.14*x*x;
}
float rectangle(int x, int y)
{
return x*y;
}
float triangle(int x, int y)
{
return x*y*0.5;
}
float trapezoid(int x, int y, int h)
{
return (x+y)*h*0.5;
} 이렇게 짰는데요.. 한번짜고 에러가 없길래 아싸하고 실행시켜서 결과를 구하려고하니까
-0.00 이렇게만 나와요 ... 왜그러죠
-
밤
함수 선언부와 함수 정의부의 철자가 다르네요.
함수 Rectangle() 과 함수 rectangle()는 완전히 별개입니다.
함수 rectangle()이 선언 또는 정의되기 전에 main() 함수에서 호출되기 때문에,
컴파일러는 rectangle() 함수가 int 형을 반환하는 것으로 간주합니다.
따라서, printf(\Result : %.2f\\n\ -
간지포텐
저도 초보라 잘 모르지만
return 3.14 * (float)x * (float)x;
이런식으로 해주면 되지 않을까요?
지금 컴파일 할 상황이 아니라 예측만 할뿐; ㅜㅜ -
첫삥
강제캐스팅이요?
저거 왜 결과값이 0000000으로만 나오죠 ㅠㅠ -
밝은빛누리예
강제캐스팅 해주면 될지도;