• 締切済み

至急で、c言語の問題の解答解説をお願いします。

1 元金(g)と年利率(r %)、年数(n)を読み込みn年後の元利合計(total)を単利と複利で計算し、2つの金額を表示するプログラムをc言語で答えてください。ただし、for文は用いないこと。 2 for文を用いて下記のようになるような九九の表を表示するプログラムをc言語で答えてください。   1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 .4・・・・・・・・・・・・・・・・・・・・・・ 5・・・・・・・・・・・・・・・・・・・・・・ 6・・・・・・・・・・・・・・・・・・・・・・ 7・・・・・・・・・・・・・・・・・・・・・・ 8・・・・・・・・・・・・・・・・・・・・・・ 9 9 18 27・・・・・・・・・・・72 81 3 整数kを入力しiを0から1ずつ増やしてkになるまで繰り返し以下のパターンを出力するプログラムをc言語で答えてください。ただし、iが奇数なら# i%4=3ならば&  i%7=4ならば*を  他%を出力すること 例 %#%&*#%&%#%*%・・・・・・・

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

それで、質問はなんでしょうか? 1. 単利は 元金 + 元金 * 利率 * 期間 複利は 元金 * (1+利率)の「期間」乗 で計算できます。 ここで、利率は1.0を基準にしています。 べき乗算は、math.hにあるpower関数で計算できます。 整数と実数の型の違いに注意しましょう 2. #include <stdio.h> int main(){ int i; for(i=0;i<1;i++){ printf( " 1 2 3 4 5 6 7 8 9\n" "1 1 2 3 4 5 6 7 8 9\n" "2 2 4 6 8 10 12 14 16 18\n" "3 3 6 9 12 15 18 21 24 27\n" "4 4 8 12 16 20 24 28 32 36\n" "5 5 10 15 20 25 30 35 40 45\n" "6 6 12 18 24 30 36 42 48 54\n" "7 7 14 21 28 35 42 49 56 63\n" "8 8 16 24 32 40 48 56 64 72\n" "9 9 18 27 36 45 54 63 72 81\n"); } return 0; } /* 「for文を用いて」とはあるが、どう使うか指定が無いので、これでも間違いでは無いはず */ 少しプログラミングっぽくすると iの段は、最初にi, それ以降にi*1,I*2,... を出力すればいい。 printf("%d %d %d %d %d %d %d %d %d %d\n",i, i*1,I*2,I*3,I*4,I*5,I*6,I*7,I*8,i*9); さらに分解して、 i*jを順番に出力すればいい。改行を忘れずに。 3. > iが奇数なら# i%4=3ならば&  i%7=4ならば*を  他%を出力すること と、if~else if ~ else ~ をそのまま日本語に翻訳したような条件が書いてあります。 プログラムにするときは、逆にif~else if~ else に逆に翻訳してやればいいだけです。 =と==の違いに注意。 奇数はどう判定すればいいかは、数学を思い出してください。 ただ、問題には、複数の条件が重なった場合についての仕様が明記されていません。 例えば、 i=3 のとき、 「iは奇数」「i $4==3」の2つの条件が成立しています。この場合、どちらを、あるいは、両方を出力するのか、が不明です。 例示されたパターンから考えろ、ということなのでしょうか。そうだとすると、ルールに従って1つを選ぶ、ということになりそうですが。

vodafone7512
質問者

お礼

おお!ありがとうございます。