「已注销」 2023-01-01 22:58 采纳率: 100%
浏览 21
已结题

关于#c++#的问题:(https://img-mid.csdnimg.cn/release/static/image/mid/ask/013850585276192.png "#left")

请问这个是咋回事


```c++
#include<iostream>
#include<string.h>
#include<iomanip>
using namespace std;
struct student{
    char number[3];
    char name[6];
    int age;
};
int main(){
    int n;
    cin>>n;
    student student[n];
    for(int i=0;i<n;i++){
        cin>>student[i].number>>student[i].name>>student[i].age;
    }
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(strcmp(student[i].name,student[j].name)>0){
            swap(student[i].number,student[j].number);
            swap(student[i].name,student[j].name);
            swap(student[i].age,student[j].age);
        }    
        }
    }
    for(int i=0;i<n;i++){
    cout<<setw(3)<<student[i].number<<setw(6)<<student[i].name<<setw(3)<<student[i].age;
    cout<<endl;}
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(student[i].age>student[j].age){
            swap(student[i].number,student[j].number);
            swap(student[i].name,student[j].name);
            swap(student[i].age,student[j].age);
        }    
        }
    }
    for(int i=0;i<n;i++){
    cout<<setw(3)<<student[i].number<<setw(6)<<student[i].name<<setw(3)<<student[i].age;
    cout<<endl;}
}

img

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/013850585276192.png "#left")
  • 写回答

1条回答 默认 最新

  • 浪客 2023-01-01 23:29
    关注

    char number[3] 只能保存2个字符,第3个元素是结束标记'\0',数组改大一点。
    交换直接用 swap(student[i], student[j]);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月13日
  • 已采纳回答 1月5日
  • 创建了问题 1月1日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题