掲示板ランキング  インターネット・Web開発(セキュリティー管理)


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.6580

演算子の扱いについて
投稿者---saku(2006/10/06 10:58:07)


-------------------------------------------------------------------
プログラム
-------------------------------------------------------------------

#include <stdio.h>

main(){
  
  double seisu1, seisu2, ans;
  char x;

  printf("2つの整数を入力すべし\n");
  scanf("%lf",&seisu1);
  scanf("%lf",&seisu2);
  
  printf("演算子を入力すべし");
  scanf("%s", x);

  if(x == * | x == + | x == - | x == %% | x == /){
    printf("\n演算実行!\n");
    printf("計算式:%f %c %f \n", seisu1, x, seisu2);
    printf("演算結果:%f\n", ans);
  }else{
    printf("ERROR\n");
  }

}




-----------------------------------------------------------------
二つの整数と演算子を入力して、それを計算するプログラム
を作成したいのですが、
どの演算子が入力されたのか判別するためには
どうしたらよいのでしょうか?

ちなみにおおまかには作ってみましたが、コンパイル出来てません。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:演算子の扱いについて 6581 επιστημη 2006/10/06 11:16:56
<子記事> Re:演算子の扱いについて 6582 nano 2006/10/06 11:33:57


No.6581

Re:演算子の扱いについて
投稿者---επιστημη(2006/10/06 11:16:56)


>どの演算子が入力されたのか判別するためには
>どうしたらよいのでしょうか?

文字列の比較は strcmp()



この投稿にコメントする

削除パスワード

No.6583

Re:演算子の扱いについて
投稿者---saku(2006/10/06 11:37:34)


#include <stdio.h>

main(){
  
  double seisu1, seisu2, ans;
  char x;

  printf("2つの整数を入力すべし\n");
  scanf("%lf",&seisu1);
  scanf("%lf",&seisu2);
  
  printf("演算子を入力すべし");
  scanf("%s", x);

  if(x == '+'| x == '-'| x == '*'| x == '%'| x == '/'){  

    switch(x){
      case '+': ans = seisu1 + seisu2;
      case '-': ans = seisu1 - seisu2;
      case '*': ans = seisu1 * seisu2;
      case '%': ans = seisu1 % seisu2;
      case '/': ans = seisu1 / seisu2;
     }
    
    printf("\n演算実行!\n");
    printf("計算式:%f %s %f\n", seisu1, x, seisu2);
    printf("演算結果:\n", ans);
  }
  else{
    printf("ERROR\n");
  }    
}





-------------------------------------------------------------------
関数は使わずに作りなおしました。

余乗算のところでエラーがでてしまいます。


この投稿にコメントする

削除パスワード

No.6585

Re:演算子の扱いについて
投稿者---nano(2006/10/06 11:52:18)


>余乗算のところでエラーがでてしまいます。

剰余算です。
その定義からいって、double型の数を使うとエラーが出るのは
当然でありましょう。

コンパイル時に、他の点で警告が出ているはずです。
そちらにも着目しましょう。



この投稿にコメントする

削除パスワード

No.6586

Re:演算子の扱いについて
投稿者---επιστημη(2006/10/06 13:23:59)


質問ヘタ。

>余乗算のところでエラーがでてしまいます。

- だからどうした? どうしてほしい?
- どんなエラーか述べるべし。



この投稿にコメントする

削除パスワード

No.6582

Re:演算子の扱いについて
投稿者---nano(2006/10/06 11:33:57)


【解答例】
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char s[10];
    int seisu1, seisu2;
    char x;
    
    printf("2つの整数を入力すべし\n");
    printf("1個目 > ");
    fgets(s, sizeof(s), stdin);
    seisu1 = atoi(s);
    printf("2個目 > ");
    fgets(s, sizeof(s), stdin);
    seisu2 = atoi(s);
    
    printf("演算子を入力すべし > ");
    scanf("%c", &x);
    
    switch (x) {
    case '+':
        printf("\n足し算\n");
        printf("計算式:%d %c %d = %d\n", seisu1, x, seisu2, seisu1 + seisu2);
        break;
    case '-':
        printf("\n引き算\n");
        printf("計算式:%d %c %d = %d\n", seisu1, x, seisu2, seisu1 - seisu2);
        break;
    case '*':
        printf("\nかけ算\n");
        printf("計算式:%d %c %d = %d\n", seisu1, x, seisu2, seisu1 * seisu2);
        break;
    case '/':
        printf("\n割り算\n");
        printf("計算式:%d %c %d = %d\n", seisu1, x, seisu2, seisu1 / seisu2);
        break;
    case '%':
        printf("\n余り\n");
        printf("計算式:%d %c %d = %d\n", seisu1, x, seisu2, seisu1 % seisu2);
        break;
    default:
        printf("演算子 %c は誤り\n", x);
        break;
    }
    return 0;
}




この投稿にコメントする

削除パスワード

No.6584

Re:演算子の扱いについて
投稿者---saku(2006/10/06 11:40:23)


すみません、
投稿に気付きませんせした。

ありがとうございます。
参考にさせてもらいます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ