[table][tr][td=1,1,4%]
[/td][td=1,1,91%]
/*【问题描述】
从标准输入连续读入n(nmarkAll < (pStu+j)->markAll){ stuInf tmp = *(pStu + i); *(pStu + i) = *(pStu + j); *(pStu + j) = tmp; } } } /*根据学号排序*/ for (i = 0; i < size - 1; i++) { for (j = i + 1; j < size; j++) { if ((pStu + i)->markAll == (pStu + j)->markAll) { if ((pStu + i)->stuID > (pStu + j)->stuID) { stuInf tmp = *(pStu + i); *(pStu + i) = *(pStu + j); *(pStu + j) = tmp; } } else { continue; } } }}void stuArrRakOut(stuInf *pStu, int size) { int i,rak=1; printf("%d %d %s %d %d %d\n", rak, (pStu + 0)->stuID,(pStu + 0)->stuName,(pStu+0)->stuMath,(pStu+0)->stuEng,(pStu+0)->stuChi); for (i = 1; i < size; i++) { if ((pStu + i)->markAll == (pStu + (i-1))->markAll) { printf("%d %d %s %d %d %d\n", rak, (pStu + i)->stuID, (pStu + i)->stuName, (pStu + i)->stuMath, (pStu + i)->stuEng, (pStu + i)->stuChi); } else { rak=i; printf("%d %d %s %d %d %d\n", rak, (pStu + i)->stuID, (pStu + i)->stuName, (pStu + i)->stuMath, (pStu + i)->stuEng, (pStu + i)->stuChi); } }}int main(){ int iniNum; scanf_s("%d", &iniNum); if (iniNum < 1 || iniNum>9) { printf("Please input num 1-9. \n"); } else { stuInf *stuArr = (stuInf*)malloc(sizeof(stuInf)*iniNum); int i; for (i = 0; i < iniNum; i++) { scanf_s("%d %s %d %d %d", &((stuArr + i)->stuID), ((stuArr + i)->stuName),10, &((stuArr + i)->stuMath), &((stuArr + i)->stuEng), &((stuArr+i)->stuChi)); } stuArrSort(stuArr, iniNum); stuArrRakOut(stuArr, iniNum); free(stuArr); } system("pause"); return 0;} |