普通に関数を使って書くことはできませんので、なんらかの抜け道が 必要となります。その抜け道として、よく用いられるものが、 6章で勉強した「ポインタ」です。ポインタとは変数の番地のことですから、 「変数の番地を関数に引き渡して、そこに直接値を書き込んでもらう」 ということを行っています。
具体的に、二つの変数A, Bを入れて、大きい方の値をAとして返し、 小さい方の値をBとして返すプログラムを書いてみましょう。 *とか&をどのような規則でつけたらよいかをよく吟味しながら、プログラムを 読んでください。わからないことがあったら、どんどんTAの人に聞いてください。
void maxmin( int *p, int *q)
{
int r;
if (*p<*q)
{r=*p;
*p=*q;
*q=r;
}
}
また、メインプログラムの方では、
maxmin(&A, &B);などとしてやればいいでしょう。
float sum(float a[],int n)
{
int i;
float s;
s=0.0;
for(i=0;i< n;++i){
s+=a[i];
}
return (s);
}
また、メインプログラムでは、
x=sum(a, n);などとしてやります。nを引数として渡す必要があることに注意しましょう。 その理由は、C言語では、配列のサイズがわからないので、 配列といっしょに要素数も渡してあげる必要があるからです。 なぜ、aに&がつかないのかを考えてみましょう。