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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
4の倍数を論理演算で表す。。
-
10個出力で改行したいのですが...
-
小数点切捨て表示
-
コーディング
-
scanfに文字が入力されたときに...
-
コマンドラインに出力した文字...
-
【C言語教えてください】sin波...
-
printf で二進表示を行いたい。
-
strcmp
-
C言語のじゃんけんゲームのプロ...
-
2の累乗を計算するプログラム...
-
srand(time(NULL))の使い方
-
c言語 プログラム ピラミッド
-
Cプログラムについて
-
円の面積を求めるプログラミン...
-
cshの文字列操作(0埋め)
-
defineで定数が置き換えられな...
-
unsigned int型について
-
パスカルの三角形についてのCプ...
-
Cでオセロゲームプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報