
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
「出力する」関数を別に作れば, swap する必要はないと思うんだ. 例えば
#include <stdio.h>
double fabs(double);
void displayMessage(double x, double y)
{
printf("%f/%f=%f\n", x, y, x/y);
}
int main()
{
double a, b;
printf("Input n1:"); fflush(stdout); scanf("%lf", &a);
printf("Input n2:"); fflush(stdout); scanf("%lf", &b);
if (fabs(a) > fabs(b)) {
displayMessage(a, b);
} else {
displayMessage(b, a);
}
}
でいいわけだし.
No.4
- 回答日時:
> くだらないことを言ってすみませんでした。
分かればいいや。
あと、swapなんだけど、これって#defineマクロのネタとしては良く取り上げられるネタなんだけど・・・・・。みんな好きだな、このネタは。
そして確かに使い勝手はある。ただし、殆どのケースから言うと「使わない方がいい」。
Pythonなんかの言語だと、
>>> a , b = 0, 1
>>> a
0
>>> b
1
>>> a, b = b, a
>>> a
1
>>> b
0
>>>
なんか簡単にスワップ出来て「おおーッ」とは思うんだけどね。
ただ、こういうのは基本、最近では「破壊的変更」と言う。
出来れば避けた方が良い動作だ。
変数の中身が簡単に書き換えられると、思わぬバグを招く場合がある。
例えば、今、変数aとbがあって、条件によってa/bかb/aにしたい、とする。
swapでaとbの「中身を取り替えないとならない」ってのは「思い込み」なんだよ。これはどっちかっつーと「危険へと誘導する」考え方、なんだ。
どうせなら例えば
double array[2];
みたいにして配列を用意して
array[0] / array[1];
と
array[1] / array[0];
と計算式を二つ用意した方が「安全」なんだ。
そうすればデータ型を不必要に「書き換え」する必要がなくなる。
なかなかCじゃ難しいんだけど、「なるたけデータは変更しない」方針でプログラミングしていった方が見通しがいいし、より安全なプログラムになる可能性が高い。
そういう事をキチンと先生が教えなきゃダメなんだけどね。
No.3
- 回答日時:
> 可能であればincludeはstdio.hだけで
そう言うくだらない事を要求しない事。
プロだエキスパートだ、って徘徊する場所で、どうして
「素人がたどたどしく書いたようなプログラムを書いてくれ」
って言えるのか。
恥を知れ、って事だな。
プロのピアニストに
「ピアノをやったことがない幼稚園児が弾くように弾いて下さい」
とか頼めるの?
マトモに考えろ。
プログラミングするとか以前の「人間としての常識の」範疇の話だ。
> swapとabs関数を別に用意してmain関数で呼び出すという方法だとありがたいです。
その辺は自分で苦労しろ。
コードを改造する事くらいやってみろ。
出来なきゃ諦めろ。
出力が想定するプログラムは以下のようになる、と予想はされる。
あとは知らん。自分で「自分が思うようにプログラムを改造しろ」。
それが無理なら誰か「自分の意のままに書いてくれる」プロのプログラマを探して、「お金を払って」解決してもらう事だ。
それがフツーで当たり前なんだよ。
人の善意を当たり前だ、と思うな。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
int main(void) {
double n[2];
char s[11];
for (int i = 0; i < 2; i++) {
printf("Input n%d: ", i + 1);
scanf("%10s%*[^\n]", s);
getchar();
n[i] = strtof(s, NULL);
}
bool flag = fabs(n[0]) > fabs(n[1]);
printf("%lf / %lf = %lf\n", flag ? n[0] : n[1],
flag ? n[1] : n[0],
flag ? n[0] / n[1] : n[1] / n[0]);
return EXIT_SUCCESS;
}
この回答へのお礼
お礼日時:2021/12/22 00:07
あなたの言うとおりもっと自分で苦労するべきでした。
くだらないことを言ってすみませんでした。
こんなくだらない質問にも丁寧に答えていただきありがとうございました。
No.2
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char** argv) {
if (argc != 3) {
goto end;
}
double m = strtof(argv[1], NULL);
double n = strtof(argv[2], NULL);
printf("%lf\n", fabs(m) > fabs(n) ? m / n : n / m);
end:
return EXIT_SUCCESS;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Excel(エクセル) EXCELで2つの数値のうち絶対値が大きい方を採択する数式 2 2022/06/21 01:51
- C言語・C++・C# 3つの倍精度浮動小数点値の平均を求めて、3つの引数全てを平均値に変更するメソッドを作成し、キーボード 1 2022/07/13 16:04
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# linux C言語について ./ファイル名 入力値 入力値が表示 という風に実行と入力を同時にしたい 3 2022/10/17 16:57
- 数学 【 数I 2次関数 最大・最小 】 問題:関数y=x²+2x+c (-2≦x≦2)の最大値 が5であ 3 2022/06/19 08:41
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- Java java 入力された文字列を数値に置き換えて整数にし、計算をしたいです。 <を10として /を1とし 4 2022/05/16 21:08
- C言語・C++・C# 絶対ち 5 2022/10/09 17:36
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C 開放してるのにエラー(doubl...
-
たくさんの数の平均を求める方...
-
int とdoubleの比較
-
至急です! マクロ定義で #defi...
-
「割り算」 と 「分数の掛け算」
-
C言語を実行すると-infが出てき...
-
EXE1→DLL→EXE2数値を受け渡す方法
-
C言語のpow関数の不具合
-
ラグランジュの補間法のCプログ...
-
関数プロトタイプ無しで、引数...
-
^この記号を使わない
-
斜辺と角度て底辺と高さを出したい
-
浮動小数点の定数
-
物体が往復する動きを作りたい
-
サンプル遅れ
-
difftime()について
-
long doubleの表示方法
-
VC6における浮動少数点数値につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C言語を実行すると-infが出てき...
-
C 開放してるのにエラー(doubl...
-
float型とdouble型の変数の違い...
-
c言語で、繰り返し文の中で、0....
-
至急です! マクロ定義で #defi...
-
C言語 関数プロトタイプ宣言の...
-
C言語の型による処理速度の違い
-
2次方程式の解を求めるプログ...
-
関数におけるif文とreturn文に...
-
int とdoubleの比較
-
C++で外積
-
C言語で台形公式を使った二重積...
-
指数の表示
-
C言語のpow関数の不具合
-
(C,C++言語)関数の引数は自動キ...
-
C言語のプログラムで#include<m...
-
数値を指数部と仮数部に分離したい
-
プログラミングでのテイラー展開
おすすめ情報
可能であればincludeはstdio.hだけで
swapとabs関数を別に用意してmain関数で呼び出すという方法だとありがたいです。
実行例は
Input n1:-18.9
Input n2:12.1
-18.900000/12.100000=-1.561983
となってほしいです。