那位高手帮我看一下这个c语言程序到底错在哪里,

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:19:01
我很急,老是找不出问题很烦人,麻烦高手帮我好好看看,万分感激…………
#include<stdio.h>
#include<math.h>
void mybrand(double c[20],int b,double B)
{
int al=9,xl=9,cl=5,ml=32,i;
double r;
for(i=0;i<20;i++)
{
xl=(al*xl+cl)%ml;
r=(double)xl/(double)ml;
c[i]=-B*log(4*r);
printf("%f\n",c[i]);
}
}

void main()
{

int a[20],b[20],n;
float SI,AI,sum=0;
double c[20],BA,BS;
a[0]=4; a[1]=3; a[2]=6; a[3]=3; a[4]=2; a[5]=2;
a[6]=3; a[7]=1; a[8]=7; a[9]=5; a[10]=6; a[11]=4;
a[12]=3;a[13]=5; a[14]=2; a[15]=6; a[16]=4; a[17]=5;
a[18]=6;a[19]=3;
b[0]=4; b[1]=6; b[2]=3; b[3]=5; b[4]=6; b[5]=4;
b[6]=8; b[7]=5; b[8]=5; b[9]=7; b[10]=6; b[11]=3;
b[12]=3;b[13]=5; b[14]=4; b[15]=6; b[16]=7; b[17]=4;
b[18]=5;b[19]=4;
for(n=0;n<20;n++)
sum+=a[n];
BA=1.0*sum/n;

void mybrand(double c[20],int b,double B)
改成void mybrand(double c[],int b,double B)

c[20]代表一个数不是一个数组

调用 mybrand(c,20,BA);就可以了

#include<stdio.h>
#include<math.h>
void mybrand(double c[20],int b,double B)
{
int al=9,xl=9,cl=5,ml=32,i;
double r;
for(i=0;i<20;i++)
{
xl=(al*xl+cl)%ml;
r=(double)xl/(double)ml;
c[i]=-B*log(4*r);
printf("%f\n",c[i]);
}
}

void main()
{

int a[20],b[20],n;
float SI,AI,sum=0;
double c[20],BA,BS;
a[0]=4; a[1]=3; a[2]=6; a[3]=3; a[4]=2; a[5]=2;
a[6]=3; a[7]=1; a[8]=7; a[9]=5; a[10]=6; a[11]=4;
a[12]=3;a[13]=5; a[14]=2; a[15]=6; a[16]=4; a[17]=5;
a[18]=6;a[19]=3;
b[0]=4; b[1]=6; b[2]=3; b[3]=5; b[4]=6; b[5]=4;
b[6]=8; b[7]=5; b[8]=5; b[9]=7; b[10]=6; b[11]=3;
b[12]=3;b[13]=5; b[14]=4; b[15]=6; b[16