ここから本文です

c言語について 事前に人数を入力し、テストの点数を配列に組み込み、配列内の得点...

アバター

ID非公開さん

2018/1/1200:43:09

c言語について
事前に人数を入力し、テストの点数を配列に組み込み、配列内の得点、合計、平均を出力するプログラムを作れという問題があるのですがわかりません。

#include<stdio.h>
void main()
の次から書いてくださるとありがたいです。

閲覧数:
102
回答数:
4
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

2018/1/1301:08:09

点数を配列に組み込むの言葉の定義が分からないのですが。。。
キーボードから入力する方式でいいんですかね。

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

int main(void)
{
int number, x = 0, y = 0 , sum = 0;
double average = 0.0;
int *data;
printf("人数を打ち込んで下さい。:");
scanf("%d",&number);
data = (int *)malloc((sizeof(int))*(size_t)(number));
if (data == NULL)exit(0);

while (x < number) {
printf("%d人目のテスト点数:", x + 1);
scanf("%d",&data[x]);
sum += data[x];
x++;
}
average =((double)sum / number);

while (y < number) {
printf("%d人目の点数:%d\n", y + 1 , data[y]);
y++;
}
printf("合計:%d\n平均:%lf\n", sum, average);

free(data);

return 0;
}

  • 2018/1/1303:20:56

    すみません。
    malloc関数内のnumberのキャスト変換はいりません。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

iktkttnさん

2018/1/1311:49:05

重箱ハズレに思えるかもしれないけど。

> void main()

C標準規格のmainは、以下のどっちかです。
int main(void)
int main(int argc, char *argv[])

rhinosugarさん

2018/1/1311:25:11

全く同じ計算のプログラムがあったので、他の質問者様への回答から抜粋しました。
点数は入力でなく、プログラム固定配列データです。配列への読込は自分で
お出来になるでしょう。改造してください。

#include <stdio.h>_// 標準入出力呼び出し用
#include <math.h>_ // √実行用

// 平均点、標準偏差計算関数
int keisan(int*score,int n,float *ave,float*sd){
_int__ i;____// 点数記録のカウンタ
_int__ *p=score; // 点数記録配列要素へのポインタ:初期値先頭
_
_if( n<=0 ){ // 不適切な件数を判別し、停止する
__printf("n=%d: illegal size of score[].\n",n); return 1;
_}
_*ave = *sd = 0;
_for(i=0;i<n;i++,p++){
__if( *p<0 || 100<*p ){ // 不適切な点数を摘出し、停止する
___printf("illegal value of score %d found.\n",*p);
___return 2;
__}
__// 合計点、平方和を加算する
__*ave += *p;
__*sd_+= *p**p;
_}
_// 平均点、標準偏差を計算する
_*ave /= n;
_*sd_= (float)sqrt(*sd/n - *ave**ave);
_
_// 正常終了
_return 0;
}

// 主制御関数
int main(){
_int__ score[]={100,90,80,70,60};_// 点数記録配列
_int__ n=5;_// 点数記録件数
_float_ ave;_// 点数合計→平均点
_float_ sd;_ // 点数平方和→標準偏差
_int__ err;_// エラーコード
_
_err = keisan(score,n,&ave,&sd);
_if( err != 0 ){
__printf("エラーコード %d :計算中止\n",err); return err;
_}
_printf("平均点:%f\n",_ave);
_printf("標準偏差:%f\n",sd);
_
_printf("\n# NORMAL END #\n");
_return 0;
}
/* STDOUT:
平均点:80.000000
標準偏差:14.142136

# NORMAL END #
続行するには何かキーを押してください . . .
*/

ayumonhanさん

2018/1/1211:08:28

そこからわからないのなら全く理解されてませんね。
復習しましょう。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。