いちばん失敗した人決定戦

for文のプログラミング


私は、いま、この問題のソースプログラムを作成できなくて困っています。
「キーボードから正の整数 n と正の実数 a を受け取る. 1 年に重量が半減する物質が a (kg) あるとき,n 年後のこの物質の重量を求めて 表示するプログラムを for 文を用いて作成せよ」という問題です。
いま、自分のソースプログラミングは下記の通りです。
int main( void )


int n;
scanf(″%d″&n);
float a;
scanf(″%f″&a);

for( n=0;i〈=

for文の所から何を書けばいいかわかりません。この問題の回答よろしくお願いします。

A 回答 (6件)

この時点で「for文の所から何を書けばいいかわかりません」ということだと, まだプログラムを作るには早すぎる. 「どのような処理をすればいいのか」をきちんと把握しているのかな?



「答えを教えてもらって終わり」ではいつまでたってもプログラムを作れるようにはならない. そのことを認識すべきだと思うね.
    • good
    • 0

> int n;


> scanf(″%d″&n);
> float a;
> scanf(″%f″&a);
色々と間違っています。
これらの';'が全角文字ですが、実際は半角文字にしてください。
これらの'('が全角文字ですが、実際は半角文字にしてください。
scanf の引数 ″%d″&n、″%f″&a は、それぞれ″%d″&n→″%d″, &n、″%f″&a→″%f″, &a のように、',' が必要です。
一般的に、変数の定義は使用に先立ってまとめて定義するように記述したほうが好ましいです。

> for( n=0;i〈=
間違っています。
上の方で scanf によって、n に値を代入していますが、n = 0 によって 0 で上書きされてしまいます。
'('が全角文字ですが、実際は半角文字にしてください。
'〈'が全角文字ですが、実際は半角文字にしてください。

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>

int main (void)
{
 int i;
 int n;
 float a;

 printf ("年数を入力してください > ");
 scanf ("%n", &n);
 printf ("質量kgを入力してください > ");
 scanf ("%f", &a);

 for (i = 0; i < n; i++)
  a = a / 2;

 printf ("%d 年後の質量は %f kgです。\n", n, f);

 exit (0);
}

↑このプログラムの各行の先頭は(見栄えのために)全角スペースを挿入してあります。
コピペして使用するとコンパイルできないと思うので、全角スペースは半角に変換するか手打ちしてください。
    • good
    • 1

問題文にある変数名(nとa)をそのままプログラム内でも使用したいのであれば、for文の条件式で n=0 としては駄目でしょう。

(^^;

まず日本語でこのループ処理を書いてみるとよいです。つまり「設計書を書く」ということです。
処理アルゴリズムを示した内部設計ですからfor文部分は「変数iが0からnまで以下の処理を繰り返す」といった記述になります。
例えば。。。

(1) 変数iを0からn-1まで1ずつインクリメントしながら以下の処理を繰り返す
 1) ...
 2) ...

といった感じです。

参考まで。
    • good
    • 0

>1 年に重量が半減する物質が a (kg) あるとき,n 年後のこの物質の重量



1 a × 1/2
2 a × 1/4
3 a × 1/8


for 文を用いて2、4、8・・が吐き出されるようにするには?

これでは駄目ですか?
    • good
    • 0

一部訂正



int i;
for (i = 0; i <= n; i++ ) {
printf("%d 年後の物質は %f kg\n", i, a);
//物質aの重量を半減
a = a / 2;
}
    • good
    • 1

サンプルとしては、下記のような感じでしょうか。



void main(void) {
//n年後を入力
int n;
scanf ("%d", &n);
//物質a(kg)を入力
float a;
scanf ("%f", &a);

int i;
for (i = 0; i <= n; n++ ) {
printf("%d 年後の物質は %f kg\n", n, a);
//物質aの重量を半減
a = a / 2;
}
}
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!