이거 해결좀 부탁드려요
제가 한번 짜본 코든데요
#include
int dut(int x)
{
int i,j,k;
printf("i와 j의 연산 결과는 ");
scanf("%d %d",&i,&j);
k=i+j;
printf("%d이다",k);
return k;
}
int bba(int x)
{
int i,j,k;
printf("i와 j의 연산 결과는 ");
scanf("%d %d",&i,&j);
k=i-j;
printf("%d이다",k);
return k;
}
int gob(int x)
{
int i,j,k;
printf("i와 j의 연산 결과는 ");
scanf("%d %d",&i,&j);
k=i*j;
printf("%d이다",k);
return k;
}
int na(int x)
{
int i,j,k;
printf("i와 j의 연산 결과는 ");
scanf("%d %d",&i,&j);
k=i/j;
printf("%d이다",k);
return k;
}
int main()
{
int dut, bba, gob, na;
dut=(1,2);
printf("%d\n",dut);
bba=(1,2);
printf("%d\n",bba);
gob=(1,2);
printf("%d\n",gob);
na=(1,2);
printf("%d\n",na);
return 0;
}
이렇게 했더니 답은 안나오고 2만 네 번 나오네요..;;
이거 어떻게 풀죠?
이렇게 해보세요
책도 보고. 학원도 다니시구요.
함수를 이해하셔야 할 거 같습니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
저는 그런걸 배운 기억이
저는 그런걸 배운 기억이 없는데요..
저는 #include랑 #include, #include, #include 이거 밖에 안배웠습니다
그래서 그런 건 본 적도 없고 써 본 적도 없네요
게다가 저거 연산결과 '+'만 맞고 나머지는 좀 이상하게 나오는데..
염치불구하지만 혹시 다른 방법은 없나요?
2만 네 번 나오는 이유.
C에서 카머 연산자는 안에 있는 내용을 수행한 뒤 맨 마지막 것을 리턴하는 걸로 알고 있습니다. 따라서 인용된 소스에서 (1,2)라면 1을 먼저 수행하고 - 상수이므로 거의 의미가 없겠죠 - 2를 리턴하게 되는 것입니다. 결국 dut에는 2가 들어가는 것이죠. 위에 정의된 함수들은 아예 사용되지도 않습니다. 싹 지우고 main만 남기고 컴파일해도 돌아가는 것을 알 수 있습니다. 아예 호출을 하지를 않으니까요.
함수 호출을 제대로 하도록 소스를 고친다 해도, 애초에 본문에 정의된 함수들 자체에도 문제가 있습니다. 네 개의 함수 모두 파라미터인 x를 아예 사용하질 않는데다 초기화도 안 된 지역변수를 그대로 사용하고 있네요. 그러니 제대로 된 결과가 나올 수가 없는 거지요. Warning 레벨을 조절해보면 컴파일시 잔뜩 메시지가 나타날 겁니다.
결국 하실 것은 두 가지입니다. (의도한 대로 소스를 고쳐드리는 것이야 어렵지 않겠지만, 전혀 의미가 없겠죠.)
1. 네 개의 함수를 손봐서 지역변수 대신 파라미터를 사용해 계산을 하게 만든다.
2. 함수 호출 부분을 제대로 고친다.
--
댓글 달기