gpt4 book ai didi

我可以在具有两个整数参数的函数中返回 double 型或浮点型吗?

转载 作者:行者123 更新时间:2023-11-30 21:42:31 24 4
gpt4 key购买 nike

我想用这个程序中的函数计算数字的平均值,但它不起作用:

#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函数和简单函数有什么区别?

最佳答案

第一个问题是您在 main() 中使用函数之前尚未声明该函数。在调用之前提供声明或原型(prototype)。

double avg(int a[], int *n);
int main() {
...

其次,在第一个实现中,您没有存储函数的返回值

avg (arr, & size) ; // useless statement

只需将返回值存储到变量中并打印它,它就会按预期工作

double average = avg (arr, & size);
printf("%lf", average);

关于我可以在具有两个整数参数的函数中返回 double 型或浮点型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43788597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com