| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:[求助]关于程序中结构体的错误,麻烦给点指正
只看楼主 加入收藏
hujian100
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-14
收藏
 问题点数:0 回复次数:1 
[求助]关于程序中结构体的错误,麻烦给点指正

本人想请教一下各位帮忙看下结构体处的错误怎么修改。主要错误是在子函数Chinese_rank中,我不明白为什么在将主函数的结构体传递给子函数进行运算时程序会报错,主要是不知道该怎么修改传递方式。报错内容已经在下边列出,相同类型的错误都用红色标出了。多谢各位了。在线等。
报错位置是:student_rank[i].name = p_student[i].student1.name;
内容是:“ '=' : left operand must be l-value”已将错误部分用红色标出。
struct studentinfo //学生个人信息结构
{
char name [NAME]; //学生姓名
char sex [SEX]; //学生性别
char birth [BIRTH]; //出生日期
char adddr [ADDDR]; //学生地址
char poto [POTO]; //联系电话
char dak [DAK]; //邮证编码
char school[SCHOOL]; //所在学校
};
struct studentsorc //学生成绩结构
{
char name[NAME]; //学生姓名
int ID; //学生学号
float sorc[6]; //记录学生成绩
float aver; //平均分
float sum; //总分
};
struct allstudentinfo //学生全部结构
{
struct studentinfo student;
struct studentsorc student1;
};

struct studentrank
{
char name[NAME];
float score;
int rank;
}student_rank[STUDENTMAX];

struct studenttemp
{
char name[NAME];
float score;
}temp;

int main(void)
{
struct allstudentinfo studentmax[STUDENTMAX]; //最大学生人数
struct allstudentinfo *p_student; //指向结构指针
int in;
p_student=studentmax;
…………
…………
…………
}

void Chinese_rank(struct allstudentinfo *p_student , int count)
{
int i, j;
int rank = 1;

system("cls");

for( i = 0; i < count; i ++ )
{
student_rank[i].name = p_student[i].student1.name;
student_rank[i].score = p_student[i].student1.sorc[0];
}

for( i = 0; i < count - 1; i ++ )
{
for( j = i + 1; j < count; j ++ )
{
if(student_rank[i].score < student_rank[j].score)
{
temp.name = student_rank[i].name;
temp.score = student_rank[i].score;
student_rank[i].name = student_rank[j].name;
student_rank[i].score = student_rank[j].score;
student_rank[j].name = temp.name;
student_rank[j].score = temp.score;
}
}
}

for( i = 0; i < count; i ++ )
{
student_rank[i].rank = rank;
if( student_rank[i].score == student_rank[i + 1].score )
{
student_rank[i + 1].rank = rank;
i++;
}
rank++;
}

printf("\t\t语文成绩的排名表\n\n");
printf("------------------------------------------------\n");
printf("姓名\t成绩\t名次\t\n");
printf("------------------------------------------------\n");
for( i = 0; i < count; i ++ )
{
printf( "%s\t" , student_rank[i].name );
printf( "%f\t" , student_rank[i].score);
printf( "%d\n" , student_rank[i].rank);
}
printf("------------------------------------------------\n");
printf("查询结束......");
printf("\n请按任意键返回!");
getch();
system("cls");
return ;
}


[此贴子已经被作者于2007-6-2 20:14:10编辑过]

搜索更多相关主题的帖子: 结构体 麻烦 
2007-06-02 13:42
hujian100
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-14
收藏
得分:0 
想出来了,用strcpy来解决这个问题。

2007-06-02 20:15
快速回复:[求助]关于程序中结构体的错误,麻烦给点指正
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011705 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved