第10回演習の解答例

課題1

#include <stdio.h>

float max3(float a, float b, float c)
{
  float m=a;
  if (b>m)
  {
    m=b;
  }
  if (c>m)
  {
    m=c;
  }
  return m;
}

int main(void)
{
  float x, y, z;
  scanf("%f", &x);
  scanf("%f", &y);
  scanf("%f", &z);
  printf("max=%f\n", max3(x, y, z));
  return 0;
}

課題2

#include <stdio.h>

float min_value(float a[], int max)
{
  int i;
  float v=a[0];
  for (i=1; i<max; i++)
  {
    if (v>a[i])
    {
      v=a[i];
    }
  }
  return v;
}

int main()
{
  float values[5]={10.2, -1.4, 5.6, 2.1, 3.0};
  printf("%f\n", min_value(values, 5));
  return 0;
}

課題3

#include <stdio.h>

int compare(char x[], char y[])
{
  int i=0;
  while (x[i]==y[i] && x[i]!='\0')
  {
    i++;
  }
  if (x[i]<y[i])
  {
    return -1;
  }
  else if (x[i]>y[i])
  {
    return +1;
  }
  return 0;
}

int main()
{
  char x[1000], y[1000];
  int v;
  printf("x? ");
  scanf("%s", x);
  printf("y? ");
  scanf("%s", y);
  v=compare(x, y);
  if (v<0)
  {
    printf("x<y\n");
  }
  else if (v>0)
  {
    printf("x>y\n");
  }
  else
  {
    printf("x=y\n");
  }
  
  return 0;
}

Updated: