以下C语言错在哪?

来源:百度知道 编辑:UC知道 时间:2024/06/11 22:57:22
#include <stdio.h>

#define N 8

typedef struct

{ char num[10];

double s;

} STREC;

double fun( STREC *a, STREC *b, int *n )

{
int i;
double ave,sum;
sum=0.0;
*n=0;
for(i=0;i<N;i++)
{
sum=sum+a->s;

a=a+1;
}
ave=sum/N;

for(i=0;i<N;i++)
{a=a-1;}

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

if(a->s<ave)
{

b->s=a->s;
b->num=a->num;

*n=*n+1;
}
b=b+1;
a=a+1;
}
return ave;

}

main()

{ STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},

{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};

STREC h[N],t;FILE *out ;

int i,j,n; double ave;

char num[10] 对这种字符串,不能用=复制。
不是
b->num=a->num;
而是
strcpy(b->num,a->num);
为了strcpy,要
#include "string.h"

这样编译可以通过。但是有些警告最好去掉。