(答案提出)C言語教室 第4回 - 配列を関数に渡す
私は最近、kznさんの記事に夢中!
四半世紀ぶりに、Cプログラミングに挑戦しました。
課題
私の答案
最初の答案提出後、最大値を返す関数に負の数ばかりの配列を渡すと、機能しない事に気づきました。再提出させてください。
/* main.c */ #include <stdio.h>
double ave(int* x, int y) {
int i;
double sum = 0.0;
for (i = 0; i < y; i++) {
sum += x[i];
}
return sum / y;
}
int max(int* x, int y) {
int i;
int m;
m = x[0];
for (i = 1; i < y; i++) {
if ( x[i] > m ) {
m = x[i];
}
}
return m;
}
void main() {
int a[] = {2, 9};
printf("a[0] = %d\n", a[0]);
printf("a[1] = %d\n", a[1]);
printf("Average = %f\n", ave(a, 2));
printf("Max = %d\n", max(a, 2));
}
(下記のkznさんのご指摘に基づいて修正済みのバージョンです)
コメント
どうでしょうか?
kznさんの例題を参考に、コーディングしました。
一応は機能するみたいです。
(動作環境;https://9cguide.appspot.com/web_picoc_em.html )
実行結果
a[0] = 2
a[1] = 9
Average = 5.500000
Max = 9
私はそもそも、C言語の文法を忘れてます。
人間が話す自然言語と同じで、使わなかったらどんどん忘れますね。
頭の中で、いろんな文法がごちゃごちゃになってます。
if文をExcel式みたいに書いてしまって、あれ?なんでエラー?みたいな。
一つの式の中に、整数型と実数型があっても良かったんでしたっけ?
そもそも、バックスラッシュ("\")の入力の仕方がわからない。
キーボード上の"\"を押すと、"¥"が表示されてしまう。
仕方がないので、kznさんのWebページから"\"をコピペしてコーディングしました。どうするんだっけ???
コメントいただけると幸甚です。
追記(2022.11.25)
kznさんからレスポンスをいただきました。
有難うございました。
いろいろとご指導いただき、ますます楽しくなってきました。
今後とも宜しくお願いします。
これまでの収益は全て、それを必要としておられる方々へ、支援機関を通して寄付させていただきました。この活動は今後も継続したいと思っています。引き続きよろしくお願いいたします。