1次元配列について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 1次元配列について

Re: 1次元配列について

#3

by みけCAT » 7年前

scoreは0なので、x[score - 1]は範囲外のx[-1]になり、これを読むのは未定義動作なのでダメです。
double型のxの要素をint型のデータを表示するための%dに対応する位置に渡すのも、未定義動作なのでダメです。

また、いい加減な名前を使うことはフォーラムルール違反です。

Re: 1次元配列について

#2

by tdsdpmgpmp » 7年前

問題
最初に入力するデータ数(100以下)を読み込んで、その人数分の得点を整数値で読み込み、平均点を小数点以下第1位まで出力する。
さらに以下に示す合格基準および評価基準にもとづいて、合格者のみの得点、平均からの差、評価を出力するプログラムを作成せよ。
合格基準 50点以上
S:80〜 A:70〜 B:60〜 C:50〜


この問題で平均を求めるまではうまくいったのですが、評価の部分で扱う変数が本当にこれでいいのか理解できないです。初心者なので教えていただきたいです。

1次元配列について

#1

by jmwatgt » 7年前

コード:


#include<stdio.h>
main()
{
 int i, n,sum=0,score=0;
 double mean, x[100];
 printf("入力するデータ数は?:");
 scanf_s("%d", &n);
 for (i = 0; i < n; i++)
 {
  printf("%3d人目の得点を入力せよ:", i + 1);
  scanf_s("%lf", &x[i]);
  sum = sum + x[i];
 }
 mean = (double)sum / n;
 printf("平均点は%.1lf点です。合格者は以下の通りです。\n",mean);
 if (x[score] > 80)
 {
  printf("%d人目:%d点(平均点%.1lf),評価S", score, x[score - 1], x[score - 1] - mean);
 }
 else if (x[score] > 70)
 {
  printf("%d人目:%d点(平均点%.1lf),評価A", score, x[score - 1], x[score - 1] - mean);
 }
 else if (x[score] > 60)
 {
  printf("%d人目:%d点(平均点%.1lf),評価B", score, x[score - 1], x[score - 1] - mean);
 }
 else if (x[score] > 50)
 {
  printf("%d人目:%d点(平均点%.1lf),評価C", score, x[score - 1], x[score - 1] - mean);
 }


ページトップ