C言語の解説の演習の解答(第七回)


演習の解答


配列版のプログラムは次のようになります.


#include <stdio.h>

#define N 5

main()
{
  int i,max,d[N];

  for (i=0;i<N;i++) {
    printf("データ=");
    scanf("%d",&d[i]);
  }

  max = d[0];

  for (i=0;i<N;i++) {
    if (d[i] > max) max = d[i];
  }

  printf("max=%d¥n",max);
}

これをポインタを使ったものにすると、次のようになります.

#include <stdio.h>

#define N 5

main()
{
  int i,max,d[N];
  int *p;

  p = &(d[0]);

  for (i=0;i<N;i++) {
    printf("データ=");
    scanf("%d",p);
    p++;
  }

  max = d[0];
  p = &(d[0]);

  for (i=0;i<N;i++) {
    if (*p > max) max = *p;
    p++;
  }

  printf("max=%d¥n",max);
}

もちろん、この配列版のプログラムとポインタを使ったプログラムは全く同じ動作をします.

C言語の解説と演習
(第7回)へ行く
   
C言語の解説と演習
(第8回)へ行く

このページに関する質問は kitamoto@edu.yamaguchi-u.ac.jp