アットウィキロゴ

問題


三人分の四科目の得点の平均を求め、これをもとに四段階の評価を決定して学生番号と共に表示するプログラム。
番号 国語 算数 理科 社会
1001 95 83 45 56
1002 25 36 66 48
1003 89 80 79 90

評価は A>80>B>70>C>60>D とする。


解答例

#include <stdio.h>
#define NINZU 3
#define KAMOKU 4

double get_ave(int*);
void get_hyouka(double,char*);
void print_data(int,int*,double,char);

main()
{
   int bango[NINZU]={1001,1002,1003};
   int ten[KAMOKU]={95,83,45,56},{25,36,66,48},{89,80,79,90};
   double ave[NINZU]={0.0,0.0,0.0};
   char hyouka[NINZU];
   int i;

   printf(" No. kokugo sansu rika syakai heikin hyouka\n");
   for(i=0;i<NINZU;i++){
        ave[i]=get_ave(ten[i]);
        get_hyouka(ave[i],&hyouka[i]);
        print_data(bango[i],ten[i],ave[i],hyouka[i]);
   }
}

double get_ave(int* p_ten) &color(red){//渡されたten[i]をint* p_ten として受けている。}
{
  int j;
  double ave=0.0;

  for(j=0;j<KAMOKU;j++) ave=ave+*p_ten;
  ave = ave / KAMOKI;

  return(ave);
}

void get_hyouka(double ave,char* p_hyouka)
{
  if  (ave<60.0) *p_hyouka='D';
  else if  (ave<70.0) *p_hyouka='C';
  else if  (ave<80.0) *p_hyouka='B';
  else   *p_hyouka='A';
}

void print_data(int bango,int* p_ten,double ave,char hyouka)
{
  int i;

  printf("%4d",bango);
  for (i=0;i<KAMOKU;i++) printf("  %4d",*p_ten++); &color(red){//tenを表示したあと、次のtenへ移動。}
  printf("   %8.2f   %1c\n",ave,hyouka);
}

タグ:

+ タグ編集
  • タグ:
最終更新:2010年12月03日 23:30