gpt4 book ai didi

c++ - 在包含名称和标记的结构中按升序对名称进行冒泡排序

转载 作者:行者123 更新时间:2023-11-28 02:36:27 24 4
gpt4 key购买 nike

当我调用函数然后显示它时,输出与输入相同。程序中没有其他错误,这应该意味着功能有问题。我只是一个初学者,所以任何帮助表示赞赏。

#include <iostream>

using namespace std;

struct student
{
char name[30];
int marks;

void getinfo()
{
cout<< "Enter your name:\n"; cin>>name;
cout<<"Enter marks:\n"; cin>>marks;
}

void showinfo()
{
cout<<"\nName: "<<name<<endl;
cout<<"Marks: "<<marks<<endl<<endl;
}
};


void bubsort( student S[] , int N)
{
student Temp;
for(int i=0;i<N-1;i++)
for(int j=0;j<N-1-i;j++)
{
if(S[j].name>S[j+1].name)
{
Temp=S[j];
S[j]=S[j+1];
S[j+1]=Temp;
}
}
}



int main()
{
student A[5];
cout<<" Enter details for 5 students:\n";
for( int i=0;i<5;i++)
A[i].getinfo();
bubsort(A,5); //I used the function
cout<<" Sorted information:\n";
for( int j=0;j<5;j++)
A[j].showinfo(); //result is in the same order as input
}

最佳答案

数组衰减为指针,因此您的比较 S[j].name>S[j+1].name 比较的是指针,而不是字符串。

如果你想比较字符串你需要使用 std::string而不是字符数组,或使用 strcmp .

关于c++ - 在包含名称和标记的结构中按升序对名称进行冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27268453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com