我想在這個程序中的函數計算數字的平均值,但它不工作:我可以使用兩個整數參數在函數中返回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;
}
但是,如果我用同樣簡單的void函數做到這一點,相反,它正常工作:
#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);
}
這兩個void函數和一個簡單的函數有什麼區別?
什麼是簡單的無效函數? –
你的意思是什麼「它不工作」?你在期待什麼?會發生什麼呢? – stakx
1)你應該在main和2之前聲明'double avg(int a [],int * n); 2)你不打印返回的結果。它不會自行打印... –