- 締切済み
C言語で2.5で割った余りを求めるには?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- furlong
- ベストアンサー率50% (17/34)
4です。 計算誤差の観点から普通は4に記した式を使いますが、誤差を気にする必要がない場合は、以下の式の方が直感的で理解しやすいかもしれません。 double z = floor (x / y) * y; 切り上げ double zz = ceil (x / y) * y; 切り捨て 他に、コンパイラーによっては、ズバリ、切り捨て、切り上げという関数を備えているものもありますが、移殖性が無いので避けるのが無難です。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
float x; x = 5.3 x = ((x * 10) / (2.5*10)) * 2.5; とか、 x = (int)(x / 2.5) * 2.5; とか、 x = ((x * 10) - (x * 10) % (2.5 * 10)) / 10 他にもあるんでは?
お礼
回答ありがとうございました。ただ、質問翌日、配置換えになりまして、皆様の回答を試すことができなくなりました。本当に感謝しております。申し訳ありません。
- furlong
- ベストアンサー率50% (17/34)
#include <math.h> double x = 5.3; double y = 2.5; double z = x - fmod (x, y); 切り捨て double zz = x == z ? x : x + y; 切り上げ コンパイル方法 cc source.c -lm 蛇足ですが、実数を扱う場合には、負数や無限大の取り扱いについて、個別に慎重に検討しなければなりません。(xかyが負の場合に切り捨てたいのか切り上げたいのか/xとyが両方ともゼロのときは何をしたいのか/無限大の場合は何をしたいのか)
お礼
回答ありがとうございました。ただ、質問翌日、配置換えになりまして、皆様の回答を試すことができなくなりました。本当に感謝しております。申し訳ありません。
- mrumesuke
- ベストアンサー率45% (254/557)
こんな方法もあるのでは? x = (x * 10 % 25) * 25 / 10; あるいは x = (x * 10 % 25) * 2.5; どちらも未検証、自信なしです。
お礼
回答ありがとうございました。ただ、質問翌日、配置換えになりまして、皆様の回答を試すことができなくなりました。本当に感謝しております。申し訳ありません。
- gatyan
- ベストアンサー率41% (160/385)
2.5*4=10 なので、元の数を4倍して10の倍数に丸めてから4で割るといい感じでは? また、% 演算子は整数の剰余を求めるはずだったと… float a; float b; printf("n="); scanf("%f",&a); b=(int)((a*4)/10.0)*10.0/4.0; printf("\n%f -> %f\n",a,b);
お礼
回答ありがとうございました。ただ、質問翌日、配置換えになりまして、皆様の回答を試すことができなくなりました。本当に感謝しております。申し訳ありません。
- asuca
- ベストアンサー率47% (11786/24626)
>floorは2.5だと使えないし flootのことですか? 2.5は使えますよ。 int型に宣言した変数に答えを入れてやればいいかと思うんですが。 int i,jとかにしておいて float x,zにし i=x/2.5を計算して z=2.5*i としてやればいいかと。
お礼
VIsial C++のリファレンスを見たところ、floorは存在します。逆にflootは存在しませんでした。 種類が違うものをご使用されているのかもしれません。 回答ありがとうございました。ただ、質問翌日、配置換えになりまして、皆様の回答を試すことができなくなりました。本当に感謝しております。申し訳ありません。
関連するQ&A
- C言語
今、C言語の勉強をしています。しかし、構文は、理解しているのですが、なかなかプログラムを作成できません。どうすれば、プログラムを作成できますか?是非教えてください。
- ベストアンサー
- フリーウェア・フリーソフト
- C言語教えてください。
(1)二次方程式y=a*x*x+b*x+cについて、a=1.0,b=2.0,c=3.0として、x=1.1,2.2,3.3,4.4のときのyをもとめる計算を行い、式と係数値とxと対応するyの値を表示するプログラムを作成せよ。 (2)xを与えて、xの2乗、3乗を計算し、xと対応する結果を表示するプログラムを作成せよ。なお、x=3,5,7,9とする。
- ベストアンサー
- C・C++・C#
- 四次方程式をC言語を用い解きたいです.
C言語は一応一通りのことは理解できます. 四次方程式を数値解析もしくは解の公式を用いた解法をプログラムに起こしたいです. 過去の質問も見てみましたがしっくりくるものがありませんでした. みなさんにオススメプログラムがございましたら, 教えていただきたいです. よろしくおねがいします. 四次方程式ではなくn次元でも結構です. 言語はCでお願いします.
- 締切済み
- C・C++・C#
- C言語の文法(変数宣言)について
C言語の文法の質問をさせていただきます。 int hoge; などと宣言しますが、このintというのは型指定子というものでしょうか。 int *piyo; という宣言のintも型指定子でしょうか。 この場合、* はなんと呼ばれるのでしょうか。(アスタリスクという記号です、という回答は期待していません。(^_^;)) ポインタ宣言子、でいいのでしょうか。これは「演算子」ではないんですよね? char c[10]; という宣言の[ ]やその中に入っている10はなんと呼ばれるのでしょうか。 いま、手元に「新ANSI C言語辞典」という本があるのですが、説明を読んでもよくわかりません。
- ベストアンサー
- C・C++・C#
- C言語の学習法について
こんにちは。私は大学二年生で今授業でC言語を学んでいます。 内容は数値計算を行っております。(二分法とかガウス消去法とか) 授業体系としては、プログラムの作成をするというものなのですが、私はプログラムを作るのが苦手です。 なので、自己学習をしようと思うのですが、効果のある勉強法とはどういったものなのでしょうか? プログラムについては自分で手を動かした数だけ上達していくといわれているのでなにか作成しようと思っています。 そこでなのですが 数値計算でアルゴリズムが頭に浮かんでこないというのは、もともとの知識不足なのだからゲーム(じゃんけん)などのプログラムを作る参考書をやるべきだ。 数値計算という内容に慣れていないのが原因だから数値計算に特化した参考書をすすめていくべきだ。 この二つの考えがあります。どちらにするべきでしょうか? プログラムを見ればアルゴリズムが理解できるのですが、 その逆、 つまり、問題からどういったアルゴリズムを作成し、それをどうプログラムとして作るのか。ができません。 まとまりのつかない文章で申し訳ございません。どんな些細なことでもいいのでなにかありましたら是非ともアドバイスよろしくお願いします。
- ベストアンサー
- その他(学問・教育)
- C言語プログラミングで困っています。助けて下さい。
C言語プログラミングで困っています。助けて下さい。 課題1-1: 実数 a と実数 b を入力すると、一次方程式ax + b = 0 の解を求めるプログラムを作る 課題1-2: 1-1 で作成したプログラムについて、さらにa として1が入力されたとき、方程式の表示 部分が1x + 3 = 0ではなくx + 3 = 0となるようにせよ 課題1-3: 1-2 で作成したプログラムについて、さらにb として0 や負の数が入力されたとき、方程式 の表示部分が2x = 0 や2x – 3 = 0となるようにせよ 課題1-4: 1-3 で作ったプログラムについて、さらにa の値として0が入力された場合、「解けません」 と表示するようにせよ 課題1-5: 係数 a, b, c を入力すると、 2次方程式ax2 + bx + c =0の解を表示するプログラムを作 れ ※ 1-2 ~ 1-4 のような機能を盛り込む ※ a が0の場合には、先に作った1次方程式のプログラムが動く という問題です。最終的にこれらを一つのプログラムにしてください。判別式や解の公式、ルート√などを使ってよろしくお願いします。C言語でお願いします
- ベストアンサー
- その他(プログラミング・開発)
お礼
回答ありがとうございました。ただ、質問翌日、配置換えになりまして、皆様の回答を試すことができなくなりました。本当に感謝しております。申し訳ありません。