
C言語 プログラミング
ごめんなさい。間違いの指摘をお願いします。
関数はこのままでお願いします
/* 等比数列を求めるプログラム */
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, result;
int n;
printf("初項を入力してください:");
scanf("%lf", &a);
printf("公比を入力してください:");
scanf("%lf", &b);
printf("項数を入力してください:");
scanf("%d", &n);
c = pow ( b, n-1 );
for (int i=0; i<n; i++){
printf("%f\n",a);
a*c;
}
return 0;
}
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No.4 はい。
公比<>0は等比数列の大前提です。powとforを理解するための実習問題に、業務システムを開発する時のような値チェックは
本来理解すべき箇所を見付けづらくする害悪ですので入れていません。
No.3
- 回答日時:
間違いの指摘というよりは、途中で力尽きた感じがしましたので、
できるだけシンプルな形で、動作するものにしました。
(こちらでは、scanfをscanf_sに変更の上、Visual studio 2017で動作確認済)
以下がそちらで動作しましたら、プログラムを見比べて頂いて、
おかしかった箇所に気づいて下さればと思います。
/* 等比数列を求めるプログラム */
#include <stdio.h>
#include <math.h>
int main()
{
double a, b;
int n;
printf("初項を入力してください:");
scanf("%lf", &a);
printf("公比を入力してください:");
scanf("%lf", &b);
printf("項数を入力してください:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("%lf\n", a * pow(b, i));
}
return 0;
}
No.2
- 回答日時:
・for の中, 「a*c;」ってなにをしている?
・result って変数はどこで使っている?
・公比 0, 項数 1 を入れるとアウト.
・そもそも「等比数列を求める」が意味不明.
No.1
- 回答日時:
> 間違いの指摘をお願いします。
> 関数はこのままでお願いします
おお、最近では珍しく潔いですね(笑)。
では。
ぶっちゃけた話、forが要りません。pow関数を使う限り、繰り返しをする必要がないのです。
つまり、「プログラムがどーの」って話じゃなくって、数学的に
「等比数列の式を定義通りに組み立てれば良いだけ」
なんで、例えば
printf("%f\n", a*pow(b, n-1));
でもすれば充分でしょう。
あと、pow関数の項数(n)は基本的にdouble型なんですが・・・・ここは自動でキャストしてくれるのかな?
いずれにせよ、
1. pow関数を使う(非常にアタマの良い選択です)なら繰り返しは要らない
2. 逆に繰り返しを使え、と言う指定ならpow関数が要らない
と言う事ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(C言語)めちゃくちゃな値にな...
-
(C言語)西暦年月日を入力して...
-
C言語習いはじめです
-
文字を動かしたい
-
プログラミング C言語 課題でプ...
-
現在時刻の表示について
-
10個出力で改行したいのですが...
-
C言語での、年複利の計算方法...
-
Visual Sutdio 2017 でのC言語...
-
5×5の転置行列を求めるC言語の...
-
LU分解法のピボット選択機能実...
-
サイコロをふって、出た目のパ...
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
【C言語教えてください】sin波...
-
c言語で2000年以降カレンダーを...
-
再帰処理 変換
-
Cでオセロゲームプログラム
-
C言語について
-
C言語プログラミング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
c言語でAからZまでを表示する...
-
(C言語)めちゃくちゃな値にな...
-
コマンドラインに出力した文字...
-
コンパイルエラーについて
-
コマンドプロンプトがすぐ消える
-
勝率をプログラムに
-
テキストカーソル位置の取得
-
三角形の判別
-
【C言語教えてください】sin波...
-
4の倍数を論理演算で表す。。
-
C言語で、「自然数nを入力し、n...
-
入力したお金の金額からお札の...
-
cshの文字列操作(0埋め)
-
switch分のケースを範囲数?に...
-
scanfに文字が入力されたときに...
-
プログラミングについての質問です
-
unsigned int型について
-
ダブルポインタで2次元配列を作成
-
円の面積を求めるプログラミン...
おすすめ情報