image.png

    1. #include<iostream>
    2. #include<algorithm>
    3. #include<stdlib.h>
    4. #include<string.h>
    5. using namespace std;
    6. struct stu{
    7. char name[20];
    8. char id[20];
    9. char grade[5];
    10. }arr[100];
    11. int main(){
    12. int n;
    13. cin>>n;
    14. for(int i =0;i<n;i++){ // 结构的输入
    15. cin>>arr[i].name;cin>>arr[i].id;cin>>arr[i].grade;
    16. }
    17. int max=atoi(arr[0].grade);
    18. int min =100; // 注意成绩的初始化
    19. char maxname[10]={0};
    20. char minname[10]={0};
    21. for(int i=0;i<n;i++){ // 寻找到最大成绩
    22. if(arr[i].grade[0]=='n') continue;
    23. if(atoi(arr[i].grade)>=max){ max = atoi(arr[i].grade);strcpy(maxname,arr[i].name);}
    24. if(atoi(arr[i].grade)<=min){ min = atoi(arr[i].grade);strcpy(minname,arr[i].name);}
    25. }
    26. int pos =0;
    27. int posmin=0;
    28. for(int j=0;j<n;j++){ 比较所有的成绩 ,逻辑与这里可以不加括号的
    29. if((atoi(arr[j].grade)==max)&&(strcmp(arr[j].name,maxname)<=0))pos =j;
    30. if((atoi(arr[j].grade)==min)&&(strcmp(arr[j].name,minname)>=0))posmin =j;
    31. }
    32. cout<<arr[pos].name<<" "<<arr[pos].id<<endl;
    33. cout<<arr[posmin].name<<" "<<arr[posmin].id<<endl;
    34. return 0;
    35. }