세 개의 정수를 입력해서 크기순서로 나열하는건데
이거 call by reference로 뽑으라는데 call by reference로 어케 뽑아야될지 모르겠어
call by reference뿐만 아니라 call by value로도 뽑는 방법을 모르겠어
우선 함수로 따로 호출하는 법은 알겠는데 이 두종류로는 어케 만들어야될지를 모르니ㅠㅜ
c언어 고수 횽들 제발 알려주셈ㅠㅜ
이건 우선 내가 만든 코딩이야.....
#include<stdio.h>
void other(int *num1,int *num2,int *num3);
void main()
{
int num1,num2,num3;
printf("세 개의 정수를 입력하시오 ");
scanf("%d %d %d",&num1,&num2,&num3);
other(&num1,&num2,&num3);
return;
}
void other(int *num1,int *num2,int *num3)
{
if(*num1>=*num2)
{
if(*num2>=*num3)
{
printf("%d %d %dn",*num1,*num2,*num3);
}
else if(*num2<*num3)
{
if(*num1>=*num3)
{
printf("%d %d %dn",*num1,*num3,*num2);
}
else if(*num1<*num3)
{
printf("%d %d %dn",*num3,*num1,*num2);
}
}
}
else if(*num1<*num2)
{
if(*num2<=*num3)
{
printf("%d %d %dn",*num3,*num2,*num1);
}
else if(*num2>*num3)
{
if(*num1>=*num3)
{
printf("%d %d %dn",*num2,*num1,*num3);
}
else if(*num1<*num3)
{
printf("%d %d %dn",*num2,*num3,*num1);
}
}
}
return;
}
제 점수는요
이렇게짜면 C도 겨우줄듯
call by value아니면 call by reference를 여기서 어케 사용해야하는지를 모르겠어ㅜㅠ
이... 이게 뭐지.. 정수 3개가 a=30 b=10 c=20 순이라고쳐 그러면 a 랑 b 랑비교하고 높은거앞으로, b 랑 c 랑 비교해서 높은거 앞으로 하면 순서대로 a c b 가 정렬돼잖아 두번비교하면됄듯
정수를 입력하는건데 횽이 설명해준거는 정수값이 고정인거 아녀??
근데 저게 고정이든 입력이라 쳐도 if를 사용하고 만들기때문에 비교함수에서 printf를 뽑아내는 방법밖에 모르겠어
비교함수에선 비교만하고 따로 메인함수에서 비교한 결과값을 뽑아서 call by value아님 call by reference를 쓰고싶은데ㅜㅠ
찾아바꾸기로 * 다 지우고 어떻게 되나 봐봐 님 포인터에 대해서 잘 모르고 있는 듯
지우고서도 되긴하는데 저거 *하고 &쓴거는 형식상으로 reference쓰는법을 몰라서 변수 주소불러내고 하는거만 쓴거임
정확히 reference를 저기에 어떻게 응용하는지를 모르겠어ㅠㅜ
게다가 call by ..도 뭔지 모르고 있는거 같은데
call by value하고 call by reference하고 개념은 알겠는데 저거에 쓰이는 응용법을 모르겟어ㅠㅜ
일단은 알고리즘부터 어떻게 해봐 ㅋㅋ 1 2 3을 거꾸로 출력하지 말고 아예 변수에 들어있는 값을 정렬해야지
저 문제는 함수안에서 변수들의 값을 바꿔서 메인함수의 변수에도 적용시키게 하라는거야 긍께 출력할때 num1 num2 num3순서대로 출력해야됨
? num1num2num3차례대로 출력하면 그대로 나오지 않아??
저게 괜히 변수겠어 값을 바꿀 수 있으니까 변수지 님이 함수에다가 해놓은건 순서대로 정렬하랬더니 자리는 안옮기고 손가락으로 이게 젤 크고 그 다음엔 이게 크고.. 이러고 있는거야
num1 = 1 num2 = 2 num3 = 3 요거를 num1 = 3 num2 = 2 num3 = 1 일케.. 헉헉 난 자야겠다 급한거 아니면 천천히 공부하면서 해봐 어차피 프갤러들 답 안가르쳐줌
와 그래도 뇌파횽이 가장 열정적이구마잉ㅋㅋㅋㅋㅋㅋ
근데 보면 정말 안알려주긴 하더라 적어도 틀린거같은건 알려주긴하던데