:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
13/10/04 13:15
1. 실수를 입력하시오 해놓고 %d로 정수를 받고 있습니다. %f로 수정
2. 실수로 받는다쳐도 scanf로 받는 num는 정수형인 int 입니다. float로 고치시면 됩니다. 3. 그냥 c인 경우 사용하는 함수를 main 함수보다 위에 선언해야합니다. int main을 맨 아래로 수정 4. fuction을 호출도 안하고 계시네요. 입출력 정의를 제대로 해보심이 좋아보입니다. 5. fuction이 call by reference를 하고자 하신거 같은데 &기호도 안되어있네요 등등 고칠 부분이 많네요...
13/10/04 13:26
어제부터 감기때문에 사실상 좀비상태였는데다가 계속 생각하다보니 머리가 너무 아파요..흑흑 오늘은 좀 푹 쉬어야 될듯 싶어요.. 한 번 더 곰곰히 생각해볼게요..
13/10/04 13:37
사실 어제는 쉬어야 됬는데 논리회로 레포트도 3개나 내야되서요.. ㅠㅠ 골골 앓으면서 하나 완료했어요ㅠㅠ 이따 집에가면 어머니가 손수 해주신 치느님을 영접하면서 일단 논리회로 레포트나 해야죠 ㅠㅠㅠ 윽 C언어는 항상 멘붕이에요 ㅠㅠㅠㅠ
13/10/04 13:17
질문 1 함수 포인터를 꼭 사용해야 하나요?
질문 2 함수에서 실수를 입력 받고, 정수와 소수를 나눠서 추출한 후에 메인 함수에서 해당하는 정수와 소수를 출력하고자 하시는 건가요?
13/10/04 13:23
질문 1 꼭 사용하진 않아도 되는거 같은데요. 근데 사용하면 좀 더 편하지 않을까 생각해요;; 방금 전에 배웠거든요 ㅠㅠ
질문 2 네 맞아요.ㅠㅠ
13/10/04 13:28
1번이 아니라면
#include <stdio.h> #include <conio.h> void function1(int *int_num, float *float_num) { printf("\n function1function() \n"); printf("입력 하세요 : "); scanf("%f", float_num); *int_num = (int)*float_num; *float_num -= *int_num; } int main(int argc, char* argv[]) { int int_num; float float_num; function1(&int_num, &float_num); printf("\n main function() \n"); printf("정수 = %d, 소수 = %f\n", int_num, float_num); printf("finished...\n"); getch(); return 0; } 이런 식이면 해결 가능합니다.
13/10/04 13:41
conio.h는 마지막에 콘솔창이 그냥 닫히지 말라고,
엔터등의 키값 하나 받아가는 getch(); 함수를 써서 그러는 것이예요. conio.h와 getch() 두개를 지우셔도 됩니다.
13/10/04 13:19
에러가 나는걸 말씀드리면 위에 메인함수에서 x,y가 정의되지 않았다고 나오고, fuction이라는 함수를 불러올때 *pf로 불러오는데도 정의되지 않았다고 나옵니다 ㅠㅠ
13/10/04 13:32
main보다 아래에 함수를 구현하려면
프로토 타입을 위에 부분 또는 해더에 써주셔야 합니다. int fuction(int ,int ,double);<-- 요놈이 프로토 타입. 또는 아래 함수를 긁어서 위로 main위로 올려도 됩니다. 그리고 x,y변수는 정의가 안되어 있었습니다. 제가 적은 소스처럼 정의를 하시고, 해당하는 주소값을 줘야지 다른 함수에서 메인 변수의 값을 바꿔줄 수가 있습니다. 아니라면 return 들어오는 값으로 밖에 알 수 없으니깐요. call by reference, call by value 에 대해서 구글링 하셔서 공부해 보시길 추천드립니다.
13/10/04 13:45
1. main 함수 위에 함수가 선언되야 합니다.
2. main 에서 function 함수를 호출하지 않고 있습니다. 3. main 에서 num, x, y 변수도 선언하지 않고 있습니다. 4. function 에 num, x, y 값을 넘겨줄때 주소가 아닌 값만 넘기고 있습니다. 이렇게 되면 function 에서 값을 변경해도 main 에있는 num, x, y 값은 변하지 않습니다. int fuction(int num, int x, double y) 이 선언은 function 에서만 사용되는 num, x, y를 새로 선언하는 방법입니다.
13/10/04 13:55
#include <stdio.h>
int function(double &_num, int &_x, double &_y); typedef int (*pf)(int &_num, int &_x, double &_y); int main(void) { int num = 0; int x=5; double y=0.5; *(pf)function(num, x, y); printf("정수 부분은 %d입니다.",x); printf("소수점 이하 부분은 %f입니다.",y); return 0; } int function(int &_num, int &_x, double &_y) { printf("실수를 입력하시오:"); scanf("%d", &_num); _x = (int)_num; _y = _num - _x; return 0; } 일단 컴파일이 되도록 수정해두었습니다. typedef로 자료형 정의해두었구요.. 나머지 내용은 보면서 수정하시면 될 것 같네요~
|