一个关于结构题的问题,谢谢大家~

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:36:00
题目是这样的:
学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组STU,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在
q所指的数组中,指定分数范围内的学生人数由函数值返回。
例如:输入的分数是70和80,则应当把分数在70到80的学生数据输出,包含分数为70分和80分的学生数据。

#include<stdio.h>
#define M 10

typedef struct
{
char num[10];
int s;
}SCORE;

int fun(SCORE *p,SCORE *q,int ll,int hh)
{
int i,k=0;
for(i=0;i<M;i++)
if(p[i].s>=ll&&p[i].s<=hh)
{
q[k].num=p[i].num;
q[k].s=p[i].s;
k++;
}

return k;
}

main()
{
SCORE stu[M]={{"G002",69},{"G004",85},{"G001",69},{"G007",72},{"G008",64},{"G006",87},{"G015",85},{"G013",94},{"G012",64},{"G014",91}};

SCORE h[M],t;
int n,i,low,heigh;

scanf("%d%d",&low,&heigh);
n

结构体的num成员是字符数组,数组是不能整体用=进行赋值的,只能逐个元素赋值.如果你要进行字符串赋值,建议用strcpy()这个库函数.
把q[k].num=p[i].num改成strcpy(q[k].num,p[i].num);就可以了,还有不要忘了包含头文件string.h

num是字符数组首地址,不能进行赋值操作

字符串赋值要strcpy(str1,str2)

q[k].num=p[i].num
这里num是个char型,不能这样赋值的..要用strcpy()

调试的时候,它通常说你什么左值问题的,,跟实际问题都有点差距,,所以调试不是这么好做的.