ここから本文です

四則演算を行う電卓プログラムの作成 割り算は小数点以下切捨て +、-、×、...

このエントリーをはてなブックマークに追加

質問者

dorakuennさん

2010/5/1816:31:00

四則演算を行う電卓プログラムの作成

割り算は小数点以下切捨て

+、-、×、÷の全ての実行例を1つにまとめる。

演算に使用する整数はnum1,num2 演算記号{operator}

関数は4つ作成すること。

プロトタイプ宣言が必要です

計算はadd sub multi divでする

仮引数はn1,n2

関数名に応じた演算 ただし乗算と除算では*と/演算子を使用しない。

演算結果表示

こんな感じの問題文です。
あともう少しで出来るんですけどよくわからなくなってしまったのでお力添えをお願いします・・・・

閲覧数:
1,149
回答数:
3
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

jiheiさん

2010/5/1819:23:26

あと少しでできるのであれば頑張って下さい。 ソースを提示してもらえれば修正ができますので、補足をお願いできないでしょうか?

あと、私なりにシンプルなプログラムを作成してみました。 スッキリしており行数が少ないです。

チェックリスト
・割り算は小数点以下切捨て
OK:割り算の結果は切り捨てています

・+、-、×、÷の全ての実行例を1つにまとめる。
?:良く意味が分かりませんでした

・演算に使用する整数はnum1,num2 演算記号{operator}
?演算に使用したのはnum1 num2 を使いました、演算記号とは?

・関数は4つ作成すること。
?:Main関数を含めると5つになってしまいますが問題は無いでしょうか?

・プロトタイプ宣言が必要です
OK:しました。 関数の実体はMain関数の後に定義しています

・計算はadd sub multi divでする
OK:上記関数を定義

・仮引数はn1,n2
OK:仮引数はn1 n2

・関数名に応じた演算 ただし乗算と除算では*と/演算子を使用しない。
OK:関数名に応じた演算を行っています、また乗算と除算には*/演算子は使用していない

・演算結果表示
OK:表示しています



--------------------------------
#include<stdio.h>

int add(int n1,int n2);
int sub(int n1,int n2);
int multi(int n1,int n2);
int div(int n1,int n2);



int main(void){

char buf[20];
int inp,mode=0,p=0,num1=0,num2;

buf[0]=0;

while(1){
inp = getchar();
if(inp=='.' || inp>='0'&&inp<='9') buf[p]=inp,buf[p+1]=0,p=p<18?p+1:p;
else if(!(inp == '+' ||inp == '-' ||inp == '*' ||inp == '/'|| inp == '\n'));
else num2=atoi(buf),p=0,buf[0]=0,num1=mode==0?num2:num1,num1=mode=='+'?add(num1,num2):num1,num1=mode=='-'?sub(num1,num2):num1,num1=mode=='*'?multi(num1,num2):num1,num1=mode=='/'?div(num1,num2):num1,mode=inp;
if(inp=='\n'){
printf("%d\n",num1);
break;
}
}
return 0;
}

int add(int n1,int n2){
return n1+n2;
}

int sub(int n1,int n2){
return n1-n2;
}
int multi(int n1,int n2){
int i=0,m=0;
for(;i<n2;m+=n1,i++);
return m;
}
int div(int n1,int n2){
int i=0,d=n1;
if(n2!=0) {
n2=n2>0?n2:-n2;
for(;d>0;d-=n2,i++);
i=d<0?i-1:i;
}
return i;
}
--------------------------------

質問した人からのコメント

2010/5/19 02:24:50

もう少しでと思ったのですが間違いだらけでした;
ありがとうございました!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル
  • このエントリーをはてなブックマークに追加
ベストアンサー以外の回答
1〜2件/2件中
並び替え:回答日時の
新しい順
|古い順

rainy_996さん

2010/5/1817:18:53

>あともう少しで出来るんですけど
その「あともう少し」のソースを提示してください。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

okya_planingさん

2010/5/1817:04:49

まずはどこまで理解しているとか、どこまで出来ているかなどの成果物が必要です。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する