ここから本文です

回答受付中の質問

知恵コレに追加する

C言語の問題が分からないので教えて頂けませんか。

inakasaikooさん

C言語の問題が分からないので教えて頂けませんか。

内径a、外径bの円環がある。このサイズをscanfを使って読み込み、面積を求めるプログラムを作成せよ
#include <stdio.h>
#include <math.h>

#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

int main(void)
{
double a, b, s;
printf("a: ");
scanf("%lf", &a);
printf("b: ");
scanf("%lf", &b);
s =0.5*b *0.5* b * M_PI - 0.5*a *0.5* a * M_PI;
printf("面積は %lf\n", s);
return 0;
}
以前質問して書いていただいたプログラミングですが、aと代入するとbを入力する前に面積が0と表示されます。

補足
お答えいただいたものにa,bをいれても面積が0になります。どうしたらよいでしょうか?
ちなみにa,bは値ではなくも文字でa,bとそのまま表したいのですが。
  • アバター

違反報告

この質問に回答する

回答

2件中12件)
並べ替え:回答日時の
新しい順
古い順

 

magurogetさん

> 以前質問して書いていただいたプログラミングです

とは言うが、その質問は削除した?(笑)


> ちなみにa,bは値ではなくも文字でa,bとそのまま表した

やりたいことがわからない。

  • アバター
  • 違反報告
  • 編集日時:2009/7/22 21:24:42
  • 回答日時:2009/7/22 21:22:20

mompaciさん

bの値が入力できないのは、aの値を入力するときに打ち込まれた「エンターキー」を2回目のscanfが勝手に読み込んでしまうためだと思います。

printf("aとbを入力:");
scanf("%lf %lf", &a, &b);

のようにして両方の値を1つのscanf文で読み込めば大丈夫ではないでしょうか。


>お答えいただいたものにa,bをいれても面積が0になります。どうしたらよいでしょうか?
>ちなみにa,bは値ではなくも文字でa,bとそのまま表したいのですが。

私の環境では問題なく動作しましたよ。
もしかして、’a’という文字と’b’という文字を直接入力しているわけではないですよね?
例えば、a=10, b=100なら、

aとbを入力:10 100

という風に入力していますか?
私の環境なら、上記のように入力すれば

aとbを入力:10 100
面積は 7775.441818

といった結果になりますよ。

  • アバター
  • 違反報告
  • 編集日時:2009/7/22 22:29:16
  • 回答日時:2009/7/22 17:37:05

この質問に回答する

話題のキーワード

[カテゴリ:C言語関連]