|
밑의 프로그램 돌려보시면 준회님의 말대로 하니까 변수때문에 생기는 워닝은 사라졌습니다.
그런데
C:\C test\pointer\pointer.cpp(44) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
이런 게2개가뜨네요 이건 왜뜨나요??
조준회 님이 쓰신 글 :
: 무슨 워닝이 뜨는 것인지 적어 놓지를 않으셨네요..
:
: 짐작컨데..
:
: a,t,y,q,w,p 변수중 실제로 사용하는 것은 a 밖에 없기때문에..
: 나오는 것일겁니다.
: 각 변수들에 아무값이나 대입하면 아마 없어질것 같군요..
:
: 그런데.. 아래 처럼 코딩하실거면..
: kim1~3까지의 함수에 파라미터를 만들 필요가 없습니다.
:
: t,y등의 변수가 main에선 아무런 역활을 하지 않고 있습니다.
: 그럴바에는 각 함수에 지역변수로 만들어 처리하는 것이 좋습니다.
:
: 변수통용범위(Scope 법칙)에 대해서 학습이 필요하실겁니다.
:
:
: 김경래 님이 쓰신 글 :
: : 밑에 플그램에서 에러는 안뜨는데 워닝이 뜹니다.
: : 왜뜨는지를 모르겠습니다.--;;;
: : 변수에서 워닝이뜨는데...;;
: : 돌아가는데는 별상관없이 잘돌아갑니다만--;;
: : 왠지 워닝도 없앴으면 하는 바램이 있네요--;;
: : 고수님들 답변 플리즈~
: :
: : #include <stdio.h>
: :
: : float kim1(int b, int c);
: : int kim2(int d, int e);
: : float kim3(int r);
: :
: : void main()
: : {
: : int a,t,y,q,w,p;
: : printf("1.삼각형의 넓이");
: : printf("2.사각형의 넓이");
: : printf("3.원의 넓이");
: : scanf("%d",&a);
: :
: :
: :
: : if (a==1)
: : {
: : kim1(t,y);
: : }
: : else if (a==2)
: : {
: : kim2(q,w);
: : }
: : else if(a==3)
: : {
: : kim3(p);
: : }
: : else
: : {
: : printf("번호를 작못 입력하셨습니다");
: : }
: : }
: :
: : float kim1(int b, int c)
: : {
: : float a;
: : printf("밑변의 길이를 입력해주세요");
: : scanf("%d",&b);
: : printf("높이의 길이를 입력해주세요");
: : scanf("%d",&c);
: : a=0.5*b*c;
: : printf("삼각형의 넓이는? %f",a);
: : return a;
: : }
: :
: : int kim2(int d, int e)
: : {
: : int f;
: : printf("가로의 길이를 입력해주세요");
: : scanf("%d",&d);
: : printf("세로의 길이를 입력해주세요");
: : scanf("%d",&e);
: : f=d*e;
: : printf("사각형의 넓이는? %d",f);
: : return f;
: : }
: : float kim3(int r)
: : {
: : float g;
: : printf("반지름의 길이를 입력해주세요");
: : scanf("%d",&r);
: : g=3.14*r*r;
: : printf("원의 넓이는? %f",g);
: : return g;
: : }
: : 즐거운하루되세요
|