gpt4 book ai didi

c - c中函数的声明、调用和定义

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

如果我取 n>=9 的值,为什么在打印数组后这段代码不运行?

#include <stdio.h>
#include <math.h>

float mean_function(float array[],int n);
int main() {
int i,n;
float array[n],mean,sum=0,s2,summation,deno,C[i],elements;
printf("Enter No of Elements\n");
scanf("%d",&n);
printf("Enter Elements\n");
for(i=0;i<n;i++){
scanf("%f",&array[i]);
printf("%f",array[i]);
}
printf("sample variance(s2) : (sum((x-mean)*(x-mean)))/(n-1) /n");
printf("population variance(sigma2) : (sum((x-u)*(x-u))/n");
mean_function(array,n);
for(i=0;i<n;i++) {
deno=((array[i]-mean)*(array[i]-mean));
C[i]=deno;
summation=summation+C[i];
}
s2=((summation)/(n-1));
printf("s2=%f \n",s2);
}
float mean_function(float array[],int n) {
int i;
float sum=0,mean;
for(i=0;i<n;i++){ sum=sum+array[i]; }
mean=(sum/n);
return mean;
}

最佳答案

Why is this code not running after printing of array if I take value of n>=9?

关于您的代码(以及关于逐步构建程序)的一些想法:

  1. C 中的数组一旦定义,大小就不会改变。 VLA 因多种原因而被淘汰。 malloc() 已加入。
  2. 使用 double float ,除非有特定原因需要使用 float 。
  3. 每行定义并初始化一个变量。 Uninit vars 只会导致 @Jens 提到的错误。
  4. 顶部的函数声明(您已完成)
  5. 在开发过程中,不需要使用 scanf 让事情变得复杂(至少在最初)。它只会增加不必要的复杂性。如果您正在测试统计函数(均值、方差),请将数字放入预定义的静态数组中并首先验证功能。
  6. C[i] 已使用未初始化的 i 进行声明。
  7. 在构建该程序的初始阶段,我提供了一个基本程序。
  8. 我不喜欢标记之间的零间距(但请忽略这一点)
  9. 考虑将您的数组命名为“array”以外的名称。
  10. 计算样本数组的大小允许您更改元素的数量,而无需更改代码中的其他任何内容;这给本已困难的阶段增加了另一层复杂性。
<小时/>
#include <stdio.h>
#include <math.h>

double sample_mean(double* p, int n);
int main()
{
double samples[] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 16.5, 2.3};
double mean = 0.0;

int size_samples = sizeof samples/sizeof(double);
printf("size_samples = %d\n", size_samples);

mean = sample_mean(samples, size_samples);
printf("Mean = %.2lf", mean);

}
// -------------------------------
double sample_mean(double* p, int n)
{
double mean = 0.0;
double total = 0.0;

for(int i = 0; i < n; i++)
total += *p++;
mean = total/n;

return mean;
}
<小时/>

一旦此功能存在(保存),您就可以开始使用其他统计功能。这样您就可以一步一步地工作,以更接近期望的结果。接下来,您可以定义 sample_variance(double* p, int n) 并了解其他(新错误)不会来自您目前编写的代码。
输出:

size_samples = 8
Mean = 5.24

希望对您有帮助。

关于c - c中函数的声明、调用和定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52914036/

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