:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
07/11/07 22:29
질문을 이해하기 상당히 어렵지만 ;;
switch에서 1,2,3,4로 바꿔하라는 거때문에 괜히 헷갈리는게 아니신지.. 덧셈은 + 하면 되고 곱셈은 * 하면 계산 됩니다 -_-;
07/11/07 22:35
int cal(int a, int b, int operator)
double temp; switch(operator) case 1 : tmp = a + b; case 2 : tmp = a - b; case 3 : tmp = a * b; case 4 : tmp = a / b; return (int)tmp; void main() while(1) { int a,b,operator=0; int check; //문법을 잘 모르겠네요.. 키보드로 입력 3개 받아서 //a,b,operator(연산자) 받으세요..... printf("계산결과는 %d 입니다", cal(a,b,operator)); printf("다른계산을 하시겠습니까?(1.예,2.아니오)"); //다시 키보드로 입력받으세요(check) if(check == 2) { break; } } 문법이 틀릴수도 있으나 로직은 맞아요 ;; 몇년간 자바만해서 C 문법이 안습이네요 흑흑..
07/11/07 22:41
그냥 간단히 힌트정도로 생각하세요.
int foo(char *pExp) int val1 = 0, val2 = 0; int isGetVal = 0; char op = 0; char c; char *pTmp; float result = 0; pTmp = pExp; for (c = pTmp; c != NULL; pTmp++) { if (c >= '0' && c<= '9') { if (isGetVal == 0) { val1 *= 10; val1 += c - '0'; val2 *= 10; val2 += c - '0'; } else // if (c .....
op = c; isGetVal = 1; } // for switch (op) case '+' ... case '-' ... case '*' .... case '/' ... } 간단한 힌트 입니다.
07/11/07 23:37
lovehis님은 지금 제 실력으로 해석해보기엔 너무 어렵네요;;
솔직히 전혀 모르겠어요; 일단저는요. char a[20]; int b=0; int c,d; printf("연산식을 입력하세요:"); scanf("&s",a); //이렇게하면 일단 연산식을 모두 문자열로 받구요. for(b=0; b<=20; b++) if (a[b]==42)//곱하기의 기계어 값이 42 입니다. {c=3; else if (a[b]==43)//덧셈의 기계어 값이 43입니다. c=1;
이런식으로 연산자에 따른 C값을 정한다음 switch(c) { case 1: 이부분에서 막히네요 이제 덧셈을 하면 되는건데, 배열에 저장된 식을 어떻게 꺼내와야 하는건지... ㅠ,ㅠ
07/11/08 09:35
일단 저장된 숫자가 문자형태로 저장되어 있어서 연산이 안되요..
scanf("%d %c %d", number1, operand, number2); 뭐 이런 식으로 받아서 하시면 쉽게 될 것 같아요. 문자열 형태로 인자를 받으면 예를 들어 30+20을 저장하면 a[0]=3, a[1]=0, a[2]=+, ... 이런 식으로 저장하기 때문에 연산이 곤란할 것 같아요.
|