私は、このプログラム内の関数で数値の平均を計算したいのですが、それは動作しません:2つの整数パラメータを持つ関数でdoubleまたはfloatを返すことはできますか?
#include <stdio.h>
#include <stdlib.h>
int i;
int size = 6;
int main() {
int arr[6] = {1, 2, 3, 4, 5, 6};
avg (arr, & size);
return 0;
}
double avg (int a[], int *n) {
int sum = 0;
double average;
for (i = 0 ; i < *n ; i++) {
sum = sum + a[i];
}
average = (double) sum/*n;
return average;
}
をしかし、私は代わりに同じシンプルな空の機能でそれを行う場合は、それが正常に動作します:
#include <stdio.h>
#include <stdlib.h>
int i;
int size = 6;
int main() {
int arr[6] = {1, 2, 3, 4, 5, 6};
avg(arr, & size);
return 0;
}
void avg (int a[], int *n) {
int sum = 0;
double average;
for (i = 0 ; i < *n ; i++) {
sum = sum + a[i];
}
average = (double) sum/*n;
printf("%lf", average);
}
これら2つのボイド関数と単純な関数の違いは何ですか?
「単純void関数」とは何ですか? –
"それはうまくいかない"と正確にはどういう意味ですか?何を期待していたのですか?代わりに何が起こるのですか? – stakx
1)mainの前に 'double avg(int a []、int * n);'を宣言し、2)返された結果を出力しないようにしてください。 ... –