|
10鱼币
问题:定义一个结构体数组,用来存放学生的姓名、总分、名次。从键盘输入一个班(10个人)的学生姓名和总分,计算出班级名次,并按名次顺序输出学生信息。
- #include<stdio.h>
- struct student
- {
- char name[20];
- int grade; //分数
- int rank; //排名
-
- } ;
- main()
- { int i,n,j;
- struct student man[10];
- struct student t;
- scanf("%d",&n); //学生人数
- for(i=0;i<n;i++)
- {
- scanf("%s%d",&man[i].name,&man[i].grade); //输入名字和成绩
- }
-
- for(i=0;i<n-1;i++) //采用冒泡排序法
-
- for(j=1;j<n-i-1;j++)
- if(man[j].grade>man[j+1].grade)
- {t=man[j].grade;man[j].grade=man[j+1].grade;man[j+1].grade=t;}
-
- for(i=0;i<n;i++)
- printf("%s%d%d",man[i].name,man[i].grade,man[i].rank=i+1); //按名次输出学生名字和姓名
-
-
- }
复制代码
错误为
24 10 D:\c语言\c语言的文件\尝试.cpp [Error] no match for 'operator=' (operand types are 'student' and 'int')
24 10 D:\c语言\c语言的文件\尝试.cpp [Note] candidate is:
2 8 D:\c语言\c语言的文件\尝试.cpp [Note] student& student::operator=(const student&)
2 8 D:\c语言\c语言的文件\尝试.cpp [Note] no known conversion for argument 1 from 'int' to 'const student&'
24 66 D:\c语言\c语言的文件\尝试.cpp [Error] cannot convert 'student' to 'int' in assignment
虽然百度搜过这些英文的意思但我还是不懂,求大佬告知,谢谢
- {t=man[j].grade;man[j].grade=man[j+1].grade;man[j+1].grade=t;}应该是man[j+1].grade=t.grade
复制代码
|
|