アプリ版:「スタンプのみでお礼する」機能のリリースについて

10人分の生徒の英語の点数{32,34,41,38,40,26,14,46,42,50}
と数学の点数
{21,33,45,47,39,41,23,45,47,29}
がそれぞれ順番に配列aとbに格納されています。
各生徒の合計点を求めて、その評価を
90以上なら5
80以上90未満なら4
70以上80未満なら3
60以上70未満なら2
60未満なら1
として配列cに格納し結果一覧を表示するプログラム

プログラミング初学者です
90以上の評価を5にするやり方や
配列cに格納するやり方など分かりません

#include<stdio.h>
int main(void){
int a[]={32,34,41,38,40,26,14,46,42,50};
int b[]={21,33,45,47,47,39,41,23,45,47,29};
int i=0;

for(i=0;i<9;i++){
if(a[i]+b[i]>=90){
}
}
printf("%d番目の人は評価5¥n",i);



return 0;
}

A 回答 (2件)

90以上の評価を5にするやり方


if (点数 >= 90) 評価 = 5;
else if (点数>=80) 評価 = 4;
...
else 評価 = 1;

配列cに格納するやり方
for(i=0; i<人数; i++) c[i] = 点数から評価する( a[i] + b[i] );

配列cを表示するやり方
for(i=0; i<人数; i++) i番目の人を表示する(i, c[i]);

i番目の人を表示するやり方
printf("%d番目の人は評価%d\n", 番号, 評価);
    • good
    • 0

#include <stdio.h>


#include <stdlib.h>

#define N 10

int* map(int (*func)(int, int), int* array0, int* array1, size_t size) {
 int* array = malloc(sizeof(int) * size);
 for (size_t i = 0; i < size; i++) {
  array[i] = func(array0[i], array1[i]);
 }
 return array;
}

int add(x, y) {
 return x + y;
}

int main(void) {
 int a[] = {32, 34, 41, 38, 40, 26, 14, 46, 42, 50};
 int b[] = {21, 33, 45, 47, 47, 39, 41, 23, 45, 47, 29};
 int* c = map(add, a, b, N);
 int p, g;
 for (int i = 0; i < N; i++) {
  p = c[i];
  g = p >= 90 ? 5 : (p >= 80 ? 4 : (p >= 70 ? 3 : (p >= 60 ? 2 : 1)));
  printf("%d ", g);
 }
 puts("");
 free(c);
 return EXIT_SUCCESS;
}
    • good
    • 0

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