- ベストアンサー
C言語プログラム:加減乗除および剰余の演算を施して表示する方法
- C言語プログラムを作成し、2つの整数に対して指定した演算を施して結果を表示する方法について説明します。
- 演算記号を入力して2つの整数に対して演算を行うプログラムを、if文ではなくswitch文を用いて作成します。
- ただし、演算記号の入力が誤った場合には、+を入力したものとみなして計算を行います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
多分、学校か何かの課題だと思いますので、ヒントだけ。 まずは当たり前ですが、入力してもらう整数と記号の説明を画面に表示します。 次に整数を2つと記号を入力してもらい、記号はop、整数はmとnに代入します。 switch文を使えと書いてありますので、switch文でケース分けします。 opの内容によりmとnをどう処理してansに代入するか、と考えればすぐに思いつくと思います。 最後にansの内容を表示して終了です。 分からないことがあればまた聞いてください。
その他の回答 (2)
- gerugugu84
- ベストアンサー率37% (29/78)
#include <stdio.h> void removeSpace( char* psrc ) { char* pdst = psrc; while( '\0' != *psrc ) { if( ' ' != *psrc && '\t' != *psrc && '\r' != *psrc && '\n' != *psrc ) { *pdst = *psrc; ++pdst; } ++psrc; } *pdst = '\0'; } int getNumber( char** ptr ) { int number = 0; int sign = 1; /*符号のチェック*/ if( '-' == **ptr ) { sign = -1; ++( *ptr ); } else if( '+' == **ptr ) { ++( *ptr ); } /*整数を数値に変換*/ while( '0' <= **ptr && '9' >= **ptr ) { number *= 10; number += ( **ptr - '0' ); ++( *ptr ); } return number * sign; } int main( int argc, char* argv[] ) { int m = 0; int n = 0; char op = 0; int ans = 0; char buffer[ 256 ]; /*計算式を入力する*/ gets( buffer ); char* ptr = buffer; /*入力式からスペースを取り除く*/ removeSpace( ptr ); /*最初の整数を抽出*/ m = getNumber( &ptr ); /*演算子を抽出*/ op = *ptr; ++ptr; /*最後の整数を抽出*/ n = getNumber( &ptr ); /*演算子別に計算結果を出力する*/ switch( op ) { case '*': ans = m * n; break; case '/': if( n ) ans = m / n; break; case '%': ans = m % n; break; case '-': ans = m - n; break; case '+': default: ans = m + n; break; } printf( "\nans=%d\n", ans ); return 0; }
- okormazd
- ベストアンサー率50% (1224/2412)
「演算記号以外の場合に+であることを表示する」 「-,*,/」のほかは全部「+」になるのだから、caseで「-,*,/」をやって、他は、defaultで「+」の計算をすればいい。