0~100の範囲で入力された複数の数値の中から、
最大値と最小値を求めて表示するプログラムを作成せよ。
-1が入力された場合は入力の終わりと判定する。
ただし、最大値と最小値はmain関数以外の一つの関数の中で求める。
また、入力された数値を記憶する配列の要素数は10とし、
それ以上入力された場合はエラーが起きても仕方ないこととする。
という問題に対し、
#include <stdio.h>
int maxi(int*,int*);
int main(void){
int o,c;
maxi(&o,&c);
printf("%d,%d",o,c);
return 0;
}
void maxi(int *po,int *pc){
int max,min,i,array[10];
printf("type 10 number between 0 and 100\n");
for(i=0;i<10;i++){
scanf("%d",&array);
if(array==-1){break;
}else if(i==0){
max=array,min=array;
}else if(array[i-1]<=array){
max=array,min=array[i-1];
}
else max=array[i-1],min=array;
;
printf("\n");
}
po=&max,pc=&min;
;
}というコードを書いてコンパイルしたところ、どんな値を打ち込んでもでたらめな
値が最大値及び最小値として返されてしまいます。
ソースコードの問題点指摘をお願いします。
コンパイラはLSI C-86で、OSはWindows Vistaです