C언어 막배우는 중인데요
이제 배열이랑 함수 조금 이해할랑 말랑 합니다.
문제하나 풀고 있는데.. 이게 안되네요 제가 짜본건데 일단 봐주시겠어요?
사칙연산관련인데요
일단 gets로 "2 + 3" 이런식으로 문자열로 받아요
gets 로받았으니 문자열이잖아요? 이걸 atoi 써서 숫자로 바꾼후
그래서 2+3 = 5 이라는 값이 나오게끔 출력하는겁니다
부가 조건은 40바이트 넘어가면 에러가뜨게,
또 연산식이 두개이상 들어가면 에러가뜨게 ex) 2++3,2-+3, 이렇게 입력되면 에러가..뜨게<-요거 못햇네요;ㅠㅠ
보시면서 아시겠지만 이제 C를 시작해서 코딩이 아주 허접하기 짝이 없을겁니다..
하지만 어려운거 써가면서 이해못하게 설명해주시는 것보다.. 제가 코딩한것을 조금 바꿔서
제가 이해 할 수 있게 끔 알려주시면 정말 고맙겠습니다.
-----------------------------------------------------------------------------
#include<stdio.h>
main() {
int i,sum;
char str[40],su[3]" " ;
gets(str);
if(strlen(str)>40){
printf("40바이트 초과 다시 입력 "\n);
gets(str);
}
str[40]=atoi(str);
for(i=0 ; i<40 ; i++) {
if(str[i]!=NULL){
if(su[0]==NULL){
su[0]= str[i];
}
else if(su[1]==NULL){
su[1]= str[i];
}
else if(su[2]==NULL){
su[2]= str[i];
}
}
}
if(su[1]=='+'){
sum = su[0] + su[2];
}
else if (su[1]=='-'){
sum = su[0] - su[2];
}
else if (su[1]=='*'){
sum = su[0] * su[2];
}
else if (su[1] =='/'){
sum = su[0] / su[2];
}
printf("%d %d %d = %d\n",su[0],su[1],su[2],sum);
}
-----------------------------------------------------------------------------
이게 에러가 떠주면 고치기라도 하겠습니다만 실행은 되는데 값은 이상하게 나오고..
|