間違いの部分を教えてください
Posted: 2015年12月21日(月) 22:56
5つの数字を入力して最大と最小、最大と最小の差を求めるプログラムを作成しているのですが、
条件としてint a(int *a, int *max, int *min)は絶対に使うことです。
ポインタが全然把握できていないのでお手伝いお願いします。
問題点は出力したときに数字が全く望んでいる数字と違う数字が出てきてします。
条件としてint a(int *a, int *max, int *min)は絶対に使うことです。
ポインタが全然把握できていないのでお手伝いお願いします。
問題点は出力したときに数字が全く望んでいる数字と違う数字が出てきてします。
#include<stdio.h>
#define N 5
int a(int *a, int *max, int *min);
int main(void)
{
int test[N];
int i, j;
int max, min;
for (i = 0; i < N; i++){
printf("%d個目の整数を入力\n",i + 1);
scanf("%d",&test[i]);
}
max = 0;
min = 100;
j = a(test, &max, &min);
printf("最大:%d,最小値:%d,最大―最小%d", max,min,j);
return 0;
}
int a(int *a, int *max, int *min)
{
int i, j;
for (i = 1; i < N; i++){
if (*max > *(a + 1))*max = *(a + 1);
if (*min < *(a + 1))*min = *(a + 1);
}
return *max - *min;
}