数字と演算子(+,-)の計算をして返す関数を作りたいのですが
どう作ればいいのかいまいちです。
以下、プログラムです。
コード:
#include <stdio.h>
#include <stdlib.h>
/*
名称 calc
引数 const char *in_dat:数字と演算子(+,-)
戻り値 計算結果
*/
/*----- ここより下に解答を記述してください -----*/
int calc(const char *in_dat)
}
int i = 0;
int kotae = in_dat[i];
i++;
while (in_dat[i] != '\0')
{
switch(in_dat[i]){
case '+' kotae += in_dat[i++]; break;
case '-' kotae -= in_dat[i++]; break;
default ?
i++;
}
return kotae;
}
/*----- ここより上に解答を記述してください -----*/
int main(void)
{
char in_buf[100];
int ret;
printf("数字と演算子(+,-)=");
scanf("%s", in_buf);
/*----- ここより下に解答を記述してください -----*/
ret = calc(in_buf);
/*----- ここより上に解答を記述してください -----*/
printf("計算結果:%d\n", ret);
return 0;
}
表示例1
数字と演算子=10+20-30
計算結果:0
表示例2
数字と演算子=55+60-5
計算結果:110
上記のように表示したいです。
最初に配列先頭に入っている数字をkotaeに入れ次の要素が演算子かどうか確認し処理を行うと
考えました。1つ1つ文字を見ていくので、1桁の場合はうまくいくかもしれないけれど
数字が連続して続いている場合(1の次0とか)の場合、どうゆう処理をしてあげればいいのかわかりません。
後、配列に入っている数字は文字列扱いなのでそれも数字に直してから処理をしなければいけないのでしょうか
プログラムも途中ですいません。よろしければ、ご教授お願いします。