以下C语言错在哪?
来源:百度知道 编辑:UC知道 时间:2024/09/21 01:45:12
#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;
#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"
这样编译可以通过。但是有些警告最好去掉。