음..이렇게 구현해 봤어..뭐 소스 적으로는 문제가 없는데..
1)궁금한게 있어서...
처음 함수 선언할때...
double Fathrenheit(float Fah);처음에여기서 float Fah라고 인자전달을 하겠다라고 선언을 했는데....
아래 메인 함수에서
float Fah,Cel; 여기서 다시 또 변수선언 을 하는게...내가 소스를 짰지만 이해가 안되네..
어떻게 짜다보니깐 짰는데
위해서 float Fah라고 선언을 했으면 main 함수에서 float Fah변수를 줄필요 없이 바로 입력 값 해도 될것 같은데..(지극히 내생각)
에러 뜨네.....
위해 인자전달을 float Fah하겠다랑... 입력값 변수를 줄때 float Fah하는거랑 완전히 다른건가..?다르다면
똑같이 쓰면 안되는데 똑같이 써도 되네...?;;역활이 다른건 알곘는데..그럼 똑같이 쓰면 에러가 뜨게 해야되는데
에러가 안뜨니깐...
이해가 안되네...아 함수 다시 읽어 봤는데도 이부분에 명확한 해설이 없어...
내가 짰지만 이부분만 이해가 안되..햇갈리지 않기 위해서 함수 인자전달 할떄 다른 변수로 넣어도 되긴 되..
ex)double f라던지 뭐 아무거나..근데..
근데 상대방에 내 소스를 볼때 이해하기 쉬우라고 나는 인자전달을 할때 입력변수랑 똑같이 줬거든...
그러니깐 이해가 갑자기 햇갈리네..
그냥 인자전달이랑 입력변수를 다르게주면..햇갈리지 않은데...상대방을 위해 똑같이 줬거든...
볼때 편하게 따라가면서 보라고 ..근데 내가 이해가 안되..함수 인자전달할때 float Fah랑 입력변수 선언 float Fah..
2) 나름 최적화 하면서 했는데..
여기서 더 전문가라면 이 소스를 어떻게 최적화 시킬까도? 그것도 궁금..
#include <stdio.h>
double Fathrenheit(float Fah);
double Celsius(float Cel);
float main(void)
{
int val;
float Fah,Cel;
printf(\"섭씨 입력1, 화씨 입력2\\n\");
scanf(\"%d\",&val);
if(val==1)
{
printf(\"섭씨 입력=\");
scanf(\"%f\",&Fah);
printf(\"변화된 화씨=%f\",Fathrenheit(Fah));
}
else if(val==2)
{
printf(\"화씨 입력=\");
scanf(\"%f\",&Cel);
printf(\"변화된 섭씨=%f\",Celsius(Cel));
}
}
double Fathrenheit(float Fah)
{
double operation=0;
operation=1.8*Fah+32;
return operation;
}
double Celsius(float Cel)
{
double operation=0;
operation=(Cel-32)/1.8;
return operation;
}
지역변수가 생존하는 공간은 해당 블럭 안에서 만이다
님이 무슨소리하는지 잘 이해가 안가지만 Scope 개념 말하는덧
어 이거도 윤성우c에서 풀었던 거당
쩌러 ㅋㅋ열혈강의 ㅋㅋ이예제가 229쪽에 있는건데 ㅋㅋ막 보다가 ㅋㅋ230에 변수의 범위 scope나오네요..
ㅋㅋㅋ 되게 웃기네 ㅋㅋ아직 그 개념을 보기도 전에 이 예제가 나오면..예제 푸는 사람입장에서도 코딩은 하곘지만...이해가 안되니 ㅋㅋ넘어가기가 되게 힘드네요 ㅋㅋ
설명을 해줘도 이걸 왜해? 하고 질문하는 애들이 있음. 그래서 필요성 존나 느껴보라고 앞에 배치했나?