こんばんは。最近C言語について学びはじめた高校生です。
ある程度学校の授業で学習するのですが、明日から実際にプログラミングを始めるみたいです。
予習しようと思い、visualC++をインストールして練習しております。
そこで、いくつか思い通りにいかない問題がありましたのでご回答、アドバイスなどいただけると嬉しいです。
内容はC言語の基礎中の基礎だと思います><
「1」 5個の整数データを配列に代入にそれらの合計と平均を求めるプログラムをつくれ。
「2」 問「1」のデータの最大値を求めるプログラムをつくれ。
「3」 問「1」の5つのデータを大きい順に並べ変えろ。
というみっつの問題です。
C言語は先週から学びはじめたばかりなのでまだまだ知識不足ですが、
下記に一番を自分なりに作ってみました。
#include <stdio.h>
int main (void)
{
int box[5]={0,0,0,0,0};
int goukei,i;
float heikin;
goukei=0;
for(i=1;i<=5;i++){
scanf("%d",&i);
goukei=goukei+i;
}
heikin=(float)heikin/5.0;
printf("合計は%d",goukei);
printf("平均は%f",heikin);
return0;
}
やはり思い通りの結果が出ず困っております。
正答とアドバイスいただけると嬉しいです。
よろしくおねがいします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No4です。
すいません。for文のところは、コメントの閉じ忘れがあります。
訂正します。
for(i = 0; i < 5; i++){ /* i は 0, 1, 2, 3, 4 となる(iが5になったらループを抜ける。)*/
No.4
- 回答日時:
他の人がいろいろと解説をしているので、とりあえず答えになってると思う。
人によってのコードの書き方はあると思うので、突っ込まないで下さい。
#include <stdio.h>
int main(void)
{
int ten[5] = {0, 0, 0, 0, 0};
int goukei = 0;
int i;
float heikin;
/* 配列の先頭は ten[0]から始まります。 */
for(i = 0; i < 5; i++){ /* i は 0, 1, 2, 3, 4 となる(iが5になったらループを抜ける。)
scanf("%d", &ten[i]);
goukei = goukei + ten[i]; /* goukei += ten[i] でもOK */
}
heikin = goukei / 5.0; /* 5.0で計算しているので、キャストしなくてもいいと思う */
printf("合計は、%d\n", goukei);
printf("平均は、%f\n", heikin);
return (0);
}
No.3
- 回答日時:
> 「1」 5個の整数データを配列に代入にそれらの合計と平均を求めるプログラムをつくれ。
配列に代入することになっていますね。そのために
> int box[5]={0,0,0,0,0};
という入れ物を用意しているのではないでしょうか。そこで、
> scanf("%d",&i);
> goukei=goukei+i;
iに読み込んでそれを合計に加えるのではなく、
box[i]に読み込んでそれを合計に加えてください。
なお、
> for(i=1;i<=5;i++){
これは正しくありません。C言語の配列の添字はゼロで始まります。
No.2
- 回答日時:
まず、デバッグする事を覚えましょう
うまく動かなかったら、とりあえず printf をいれて
変数の中身を確認してください。
for(i=1;i<=5;i++){
printf("A:i=%d\n",i); // デバッグ行 A
scanf("%d",&i);
printf("B:i=%d\n",i); // デバッグ行 B
goukei=goukei+i;
printf("C:goukei=%d\n",goukei); // デバッグ行 C
}
こうすると、
A:i=1
5 ← 5と入力
B:i=5
C:goukei=5
で終了しますよね
for でi=1; i<=5 としていて、
デバッグ行 B を見ると i=5 で for の条件が成立しているのが
わかります。
そうすると、 for のループの変数と
scanf の変数が同じなので、ここがおかしい
とわかるはず、
うまく動いたら、
デバッグの printf をはずして、次の怪しい箇所に
デバッグ行を入れる、
まずは、その繰り返しです
No.1
- 回答日時:
えぇと....
scanf で i を書換えちゃダメだよ....
「データを記憶しておく変数」を用意して, scanf ではそこに読み込むようにする.
で, guokei を求めるときにはその値を加える, と.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# 10人分の生徒の英語の点数{32,34,41,38,40,26,14,46,42,50} と数学の点 2 2022/05/26 21:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10個出力で改行したいのですが...
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
【C言語教えてください】sin波...
-
scanfに文字が入力されたときに...
-
ガウスの消去法、後退代入について
-
C言語プログラミング
-
defineで定数が置き換えられな...
-
printf で二進表示を行いたい。
-
c言語でAからZまでを表示する...
-
分数を表示するプログラム(長...
-
switch分のケースを範囲数?に...
-
カレンダーのプログラムについて
-
C言語初心者です。次の問題で質...
-
C言語です
-
じゃんけんゲームの応用
-
BMI値から体型を判定するプログ...
-
(C言語)めちゃくちゃな値にな...
-
なぜgccはstdio.hをインクルー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語について
-
printf で二進表示を行いたい。
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
コンパイルエラーについて
-
テキストカーソル位置の取得
-
strcmp
-
unsigned int型について
-
c言語でAからZまでを表示する...
-
printf( " %2d", p * q );
-
コマンドラインに出力した文字...
-
printfの出力内の文字をdefine...
-
ホームページをC言語で作りたい...
-
コマンドプロンプトがすぐ消える
-
小数点切捨て表示
-
【C言語教えてください】sin波...
-
switch分のケースを範囲数?に...
-
二つの整数値の大小比較
-
4の倍数を論理演算で表す。。
-
defineで定数が置き換えられな...
おすすめ情報