gpt4 book ai didi

c - 函数average 和stdDev const int tab[ ]。一般问题

转载 作者:行者123 更新时间:2023-11-30 14:43:18 25 4
gpt4 key购买 nike

我必须使用:浮点平均值(const int tab[],int size);float stdDev(const int tab[], int size);到 C 中的 printf 平均值和 stdDev。

我对average有疑问,我认为对const int有疑问。当我添加 const int tab[101] 时,a1 出现错误;那么我怎样才能使它与 const int 一起工作(如果可以的话)。如果这段代码有什么问题。任何帮助都会有所帮助。

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

float average(const int tab[], int size);
float stdDev(const int tab[], int size);

int main()
{
float ave, std;
int a1;
int j;
int tab[101];
printf("Podaj liczby: ");
for(j=0; j<=99; j++)
{
a1 = scanf("%d", &tab[j]);

if(a1<1)
{
printf("Incorrect input");
return 1;
}
if(tab[0]==0)
{
printf("not enough data available");
return 2;
}
if(tab[j]==0)
{
break;
}

}

ave = average(tab, j);
printf("%.2f\n", ave);
std = stdDev(tab, j);
printf("%.2f", std);
return 0;
}

float average(const int tab[], int size)
{
int i;
float y=0, x;

if(size<=0)
{
return -1;
}

for(i=0; i<size; i++)
{

x = x + tab[i];
}
y = x/size;
return y;
}
float stdDev(const int tab[], int size)
{
int i;
float y, z, z1, z2=0, z3=0;
if(size<=0)
{
return -1;
}

y = average(tab, size);


for(i=0; i<size; i++)
{

z = tab[i] - y;
z1 = pow(z, 2);
z2 = z2 + z1;
z=0;
z1=0;
}
z3 = sqrt(z2/size);
return z3;
}

最佳答案

您在 average 中定义变量 x:

float y=0, x;

没有给它一个值。然后这里:

x = x + tab[i];

您正在读取它的值,而无需事先将其设置在任何地方。因为您从未给过 x 一个值,所以它的值将是不确定的,读取它会导致未定义的行为,这意味着您的程序可能会打印垃圾输出。

始终初始化变量:

float y=0, x=0;

关于c - 函数average 和stdDev const int tab[ ]。一般问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54000525/

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