トップページ > プログラム > 2016年05月25日 > grsxbFu1

書き込み順位&時間帯一覧

5 位/196 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000121010409



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C言語なら俺に聞け! Part 135©2ch.net

書き込みレス一覧

C言語なら俺に聞け! Part 135©2ch.net
244 :デフォルトの名無しさん[]:2016/05/25(水) 16:59:51.98 ID:grsxbFu1
以下のようなプログラムを作成せよ。
5名分の数学の点数と英語の点数を入力する。
以下の計算式に基づいて合計点数を計算する。
(合計点数)=(数学の点数)×1.2 + (英語の点数)×0.8
上位2名を「合格(A)」とする。
上記合格者以外について、以下の計算式に基づいて合計点を再計算する。
(合計点数)=(数学の点数)×0.8 + (英語の点数)×1.2
上位2名を「合格(B)」とする。
つまり、不合格者は1名のみとなる。
同じ合計点数はないと仮定してよい。

こういう課題なんだけど、とりあえず1.2とかの計算はおいといて、入力した点数の最高点の人を合格にしようとしたんだけど
合格が0人目になってしまう 途中までのプログラム下に貼るんでアドバイスください
C言語なら俺に聞け! Part 135©2ch.net
245 :デフォルトの名無しさん[]:2016/05/25(水) 17:00:51.35 ID:grsxbFu1
>>244の続き
#include<stdio.h>

void main()
{
int i=0;
int a[5];
int b[5];
int c[5];
double tempmax;

printf("5人分の数学の点数を入力してください\n");

for( i=0; i<5; i++)
{
printf("%d人目の数学の点数:",i+1);
scanf_s("%d",&a[i]);
}

printf("英語の点数を入力してください\n");

for( i=0; i<5; i++)
{
printf("%d人目の英語の点数:",i+1);
scanf_s("%d",&b[i]);
}
C言語なら俺に聞け! Part 135©2ch.net
246 :デフォルトの名無しさん[]:2016/05/25(水) 17:02:05.60 ID:grsxbFu1
連投すいません さらに続き

for( i=0; i<5; i++)
{
c[i] = a[i] + b[i];

}
printf("%d,%d,%d,%d,%d",c[0],c[1],c[2],c[3],c[4]);
tempmax = c[0];

for( i=0; i<4; i++)
{
if(c[i]>tempmax)
{
tempmax = c[i];
}
}

printf("合格(A):%d人目 ",tempmax);
}
C言語なら俺に聞け! Part 135©2ch.net
251 :デフォルトの名無しさん[]:2016/05/25(水) 18:46:25.87 ID:grsxbFu1
>>249-250を参考にしたら数学英語の得点の最高合計点取った人が出るようになった ありがとう
でも、数学英語の両方とも上から5,4,3,2,1て入力したら-858993459人目って出るようになった
どっかforの範囲間違えたかな?
C言語なら俺に聞け! Part 135©2ch.net
253 :デフォルトの名無しさん[]:2016/05/25(水) 20:09:18.71 ID:grsxbFu1
>>251
自己解決しました
また質問なんだけど上から二番目の点数のデータ、もしくは、一番目のデータを除いた最高点数のデータ
ってどう表現すればいいの?
C言語なら俺に聞け! Part 135©2ch.net
260 :デフォルトの名無しさん[]:2016/05/25(水) 22:38:48.23 ID:grsxbFu1
>>259
参考にさせてもらって合格(A)はうまく出力できた
後半の合格(B)を出力するときにc[i]<tempmax1のtemomax1の値が計算が変わって
変わってしまってるからif(c[i]>tempmax2 && c[i]<tempmax1) こういうふうにできない

#include<stdio.h>

void main()
{
int i = 0;
int a[5];
int b[5];
int c[5];
int no1=0,no2=0,no3=0,no4=0,no5=0;
double MAX,MAx,Max,max;
int min;

printf("5人分の数学の点数を入力してください\n");

for (i = 0; i<5; i++)
{
printf("%d人目の数学の点数:", i + 1);
scanf_s("%d", &a[i]);
}

printf("英語の点数を入力してください\n");

for (i = 0; i<5; i++)
{
printf("%d人目の英語の点数:", i + 1);
scanf_s("%d", &b[i]);
}
C言語なら俺に聞け! Part 135©2ch.net
261 :デフォルトの名無しさん[]:2016/05/25(水) 22:39:39.72 ID:grsxbFu1
>>260続き
for (i = 0; i<5; i++)
{
c[i] = (double)1.2*a[i] + (double)0.8*b[i];
}

MAX = c[0];

for( i=0; i<5; i++)
{
if(c[i]>MAX)
{
MAX = c[i];
no1=i;
}
}
printf("合格(A):%d人目 ",no1+1,(int)MAX);

MAx = c[0];

for (i = 0; i<5; i++)
{
if (c[i] > MAx && c[i] < MAX)
{
MAx = c[i];
no2 = i;
}
}
printf("%d人目\n", no2 + 1, (int)MAx);

Max = c[0];
C言語なら俺に聞け! Part 135©2ch.net
262 :デフォルトの名無しさん[]:2016/05/25(水) 22:42:35.41 ID:grsxbFu1
>>261続き
for (i = 0; i<5; i++)
{
c[i] = (double)0.8*a[i] + (double)1.2*b[i];
}

for (i = 0; i < 5; i++)
{
if (c[i] > Max && c[i]<MAx)
{
Max = c[i];
no3 = i;
}
}

printf("合格(B):%d人目 ", no3 + 1, (int)Max);

max = c[0];
for (i = 0; i < 5; i++)
{
if (c[i] > max && c[i]<Max)
{
max = c[i];
no4 = i;
}
}
C言語なら俺に聞け! Part 135©2ch.net
263 :デフォルトの名無しさん[]:2016/05/25(水) 22:43:25.22 ID:grsxbFu1
<<262続き
連投すいません
printf("%d人目\n", no4 + 1, (int)max);

min = c[0];
for (i = 0; i < 5; i++)
{
if (c[i] >min && c[i]<max)
{
min = c[i];
no5 = i;
}
}
printf("不合格:%d人目", no5 + 1, min);
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。