求教成绩排序问题
给学生成绩排序,如果成绩相同则按姓名首字母,求教如何解决啊
#include<stdio.h> struct Student { char name[10]; float score; }; void main() { struct Student a[4]={"zhan",68,"li",78,"wang",78,"sun",89}; int i,j; for(i=0;i<4;i++) printf("%s,%1.0f ",a[i].name,a[i].score); printf("\n"); for( i=0;i<3;i++) for(j=0;j<3-i;j++){ struct Student temp; if(a[j].score<a[j+1].score) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } else if((a[j].score=a[j+1].score)&&(strcmp(a[j].name,a[j+1].name)>0)) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } for( i=0;i<4;i++) printf("%s ",a[i].name); printf("\n"); }如果要添加元素,只需要在语句里赋值语句里添加,并且改变循环的项数就可以了。