• ベストアンサー

下記に記すプログラムを解いてください。

Σ1/(i + k) の計算 [問題]正の整数 n を入力し,次の式の値を計算し,出力するプログラムを書け. 1/1 + 1/2 + 1/3 + ・・・ + 1/n 上記の問題が解けませんので解答お願いします。 上記の問題をdouble形式でお願いします。 上記の問題をintmain()形式でお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • akr104
  • ベストアンサー率49% (25/51)
回答No.1

C言語でよろしいのでしょうか? 以下のプログラムで用件を満たしていると思います。 #include <stdio.h> int main(void) { int n; int i; double sum = 0; scanf("%d", &n); for(i = 1; i <= n; i++) { sum += 1 / (double)i; } printf("%f\n", sum); return 0; } nがdoubleではなくintで定義されているのは、i<=nを正しく検出するためです。 型が違うと、希に比較できない場合があるので。 ですから、1/nの計算は、iをdoubleにキャストしてから行っています。

関連するQ&A

  • 超困っているので助けて下さい

    階乗の計算 [問題]正の整数 n を入力し,次の式の値を計算し,出力するプログラムを書け.なお,計算は double で行え. (1 + 9.0) * (2 + 9.0) * (3 + 9.0) * ・・・ * (n + 9.0) 上記の問題をdouble形式で説いてくださいお願いします。 CとC++でお願いします。 ついでに言うとintmain()で解いてみてください。

  • 本文の答えをよこしてください。

    Σ1/(i + k) の計算 [問題]正の整数 n を入力し,次の式の値を計算し,出力するプログラムを書け. 1/1 + 1/2 + 1/3 + ・・・ + 1/n 上記の問題が解けませんので解答お願いします。 上記の問題をdouble形式でお願いします。

  • 困っています助けて下さい。

    階乗の計算 [問題]正の整数 n を入力し,次の式の値を計算し,出力するプログラムを書け.なお,計算は double で行え. (1 + 9.0) * (2 + 9.0) * (3 + 9.0) * ・・・ * (n + 9.0) 上記の問題をdouble形式で説いてくださいお願いします。

  • プログラム

    「一行に書かれた式(文字列)の値を求めるプログラム」 少なくとも2つの2桁までの正の整数値の加減乗除ができること。 このプログラムのやりかたがわかりません、教えてください。。

  • プログラムについて

    次の問題が自分はどうでもできないので、皆さんに助けをお願いしたいのです。 問題は:     N以下の素数を求めるプログラムと     試験の得点(0以上100以下の整数)を入力し,得点データの分布を10点刻    みのヒストグラムの形式で出力するプログラムが分かりません、ぜひ教え    ていただきたいです。よろしくお願いします!

  • プログラムについて

    次の問題が自分はどうしても分からないので、みなさんの力をお借りしたいのです。 問題は:   N以下の素数を求めるプログラムと   試験の得点(0以上100以下の整数)を入力し,得点データの分布を10点刻    みのヒストグラムの形式で出力するプログラムの作成が分かりませんので、   何とかよろしくお願いします!

  • シグマのプログラムについて

       n   1 e = Σ ―――      j=0  j !  e=Σ(j=0~n) 1 / j !  (←上と同じ式です) この式でnを1から10まで変化させたときの値を出力するプログラムはどのようになるのでしょうか? 教えてください。お願いします。

  • プログラム(BASIC) 教えてください

    (1) INPUT文で入力した整数 k に対し, 3, 5, 7, 9 のいずれかの値をランダムに等確率で発生し,改行せず横に続けて k個 表示させるプログラム (2)初項 a ,公差 r ,長さ n の等差数列 a, a+r, a+2r, ..., a+(n-1)r のいずれかの値を等確率で発生させるためには,乱数をどのような式で作れば良いか? INPUT文で与えられた a, r, n, k に対して,この等差数列のいずれかの値をランダムに k 個表示させるプログラム (1)は0,2,4,6を考えてから+3すればいいと思うのですがランダムに0,2,4,6を表示するプログラムの仕方が分かりません。 10 INPUT k 20 FOR L=1 TO k 30 RANDOMIZE 40 PRINT INT(   )+3; 50 NEXT L 60 END 解説があるとありがたいです。

  • 階乗のプログラム

    c言語初心者です。 13までの階乗の値を計算するプログラムを下のように書いたのですが、 #include <stdio.h> main() { int N, fact; fact=1; for(N=1; N<=13; ++N){ fact=fact*N; printf("%d!=%d\n",N, fact); } } このプログラムを実行してみると、12!までは正しい値が出力されるのですが、13!の値が1932053504と出力され、計算機の値と違います。 どこが間違っているのでしょうか。どなたかご教授お願いします。

  • マチンの公式による円周率のプログラム

    この前、学校の授業でマチンの公式による円周率の計算をするプログラムを以下の方針で考えました。ここで、atanを求めるユーザー定義関数を作りたいのですが、途中までは考えたのですが以下の空欄の部分が、よく分かりません。 【方針】1.数列a(k)=±(1/2k-1)*x^(2k-1)(k=1,2,…)の漸化式を作る。(a(k)のkは添え字です) 2.a(1)+a(2)+a(3)+…+a(N)の値をatan(x)の近似値とする。 (1,2,3,…,Nは添え字です) (プログラムの一部)→atanの近似値を求める関数 double Atan(double x) { double s=_,a=_,kk; int k; //添え字用 for(k=1;k<=x;k++) {s_; //多分式が入る。 kk=(double)k; a_; //多分式が入る。 } return s; } 下線部に適当な文字や式を入れて、この関数を完成させてください。(ヒントをください) ※できれば、このプログラムの形は変えないで、下線部のみを埋めてください。