1. char<->int 변환법, ascii 코드 등에 대해 공부를 좀 하셔야 아래 내용이 이해가 될꺼구요...
2. while, break에 대해 간단히 아셔야 하겠습니다.
3. 자세한 것은 아래에 적어두었습니다.
재질문. 님이 쓰신 글 :
: #include<stdio.h>
: #include<stdlib.h>
: #include<string.h>
: main() {
: int i,sum;
: char str[40],su[3];
: su[0]=0;su[1]=0;su[2]=0;
: gets(str);
: if(strlen(str)>=40){ /// 이 부분에 검사하고,
: printf("40바이트 초과 다시 입력 "\n);
: gets(str); /// 여기서 새로 받은 후 재 검사가 없네요.
/// 해결하시려면 while 등으로 감싸서 40 이하일 때만
/// 다음 루틴으로 가도록 하시면 됩니다.
: }
:
: for(i=0 ; i<40 ; i++) {
: if(str[i]!=''){
: if(su[0]==0){
: su[0]= str[i];
: }
: else{
: if(su[1]==0){
: su[1]= str[i];
: }
: else{
: if(su[2]==0){
: su[2]= str[i];
: }
: }
: }
: }
: }
: if(su[1]=='+'){
: sum = su[0] + su[2]; //// su[0], [2]를 각각 atoi로 감싸주시면 됩니다.
: }
: 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); /// 처음 %d 세개를 각각 %c로 하시면 될껍니다.
: }
: -----------------------------------------------------------------
: 40바이트 넘어가는 걸 한번밖에 못잡아주네요 ㅠㅠ
: 그리고 그다음 if 로 넘어갈때 새로 입력해준 gets(str) 이 아니고 그전에 입력한(40바이트넘어간) gets(str)로
: if 문을 돌리는거 같은데 맞나요? 그래서 튕기는것 같더라구요 ㅠㅠ
: 또atoi 를 어디에 써야될지를 모르겠어요;;
: 자꾸 아스키코드값으로 나오고..
: 5+3 입력하면
: 53 43 51 = 104
: 이런식으로요 ;
: 그리고 연산은 한자리 숫자로만 하겠습니다.
|