落書きノート

ふと自分が気になった事を書いてます

C言語で問題を解く

解きながら学ぶC言語

解きながら学ぶC言語

// q6_16
#include <stdio.h>

const int max(const int kamoku[]);
const int min(const int kamoku[]);
const double avg(const int kamoku[]);

const int max(const int kamoku[]) {
  int max = kamoku[0];
  int i;
  for(i = 0; i < 5; i++)
    if(max < kamoku[i])
      max = kamoku[i];
  return max;
}

const int min(const int kamoku[]) {
  int min = kamoku[0];
  int i;
  for(i = 0; i < 5; i++)
    if(min > kamoku[i])
      min = kamoku[i];
  return min;
}

const double avg(const int kamoku[]) {
  int i;
  int sum = 0;
  for(i = 0; i < 5; i++)
    sum += kamoku[i];
  return (double)sum / 5.0;
}

const double avg_one_per(const int kokugo, const int sugaku, const int eigo) {
  int i;
  return (double)(kokugo + sugaku + eigo) / 3.0;
}

int main(void) {
  int i;
  int kokugo[5];
  int sugaku[5];
  int eigo[5];
  
  for(i = 0; i < 5; i++) {
    printf("[ %d番]国語 : ", i + 1);
    scanf("%d", &kokugo[i]);
    printf("      数学 : ");
    scanf("%d", &sugaku[i]);
    printf("      英語 : ");
    scanf("%d", &eigo[i]);
  }
  puts("No 国語 数学 英語");
  puts("-----------------");
  for(i = 0; i < 5; i++)
    printf("%2d %4d %4d %4d\n", i + 1, kokugo[i], sugaku[i], eigo[i]);
  puts("-----------------");
  printf("[国語] 最高点 : %2d\n", max(kokugo));
  printf("       最低点 : %2d\n", min(kokugo));
  printf("       平均点 : %2.1f\n", avg(kokugo));
  printf("[数学] 最高点 : %2d\n", max(sugaku));
  printf("       最低点 : %2d\n", min(sugaku));
  printf("       平均点 : %2.1f\n", avg(sugaku));
  printf("[英語] 最高点 : %2d\n", max(eigo));
  printf("       最低点 : %2d\n", min(eigo));
  printf("       平均点 : %2.1f\n", avg(eigo));
  puts("各学生の3教科の平均点");
  for(i = 0; i < 5; i++)
    printf("%2d : %.1f\n", i + 1, avg_one_per(kokugo[i], sugaku[i], eigo[i]));
  return 0;
}

// q6_17
#include <stdio.h>

int tensu[5];

int main(void) {
  int i;
  extern int tensu[];
  puts("5人の点数を入力してください。");
  for(i = 0; i < 5; i++) {
    printf("%d : ", i + 1);
    scanf("%d", &tensu[i]);
  }
  puts(" 合格者一覧表");
  puts("------------");
  for(i = 0; i < 5; i++)
    if(tensu[i] >= 60)
      printf("tensu[%d] = %d\n", i, tensu[i]);
  return 0;
}

// q6_18
#include <stdio.h>

int fx = 0;

void func(void) {
  static int sx = 0;
  int ax = 0;
  printf("%3d%3d%3d\n", ax++, sx++, fx++);
}

int main(void) {
  int i;
  puts(" ax sx fx");
  puts("----------");
  for(i = 0; i < 10; i++)
    func();
  puts("----------");
  return 0;
}

// q6_19
#include <stdio.h>

int a[3];

int main(void) {
  int i;
  static int b[3];
  int c[3];

  printf("a ");
  for(i = 0; i < 3; i++)
    printf("%4d", a[i]);
  putchar('\n');

  printf("b ");
  for(i = 0; i < 3; i++)
    printf("%4d", b[i]);
  putchar('\n');

  printf("c ");
  for(i = 0; i < 3; i++)
    printf("%4d", c[i]);
  putchar('\n');
  
  return 0;
}