![]() |
#2
rjsp2020-11-09 16:48
注意,以下代码不是我写的,我只是改了一些错误
![]() #include <iostream> #include <string> using namespace std; struct Person { string Name; int a[5]; }; void socring( Person Arr[] ) { for(int i=0;i<5;i++) { for(int j=1;j<5;j++) { for(int k=0;k<5-j;k++) { if( Arr[i].a[k]< Arr[i].a[k+1]) { int n = Arr[i].a[k]; Arr[i].a[k] = Arr[i].a[k+1]; Arr[i].a[k+1] = n; } } } } } int main( void ) { Person Arr[5]; for(int i=0;i<5;i++) { string name; int b[5]; cin>>name; Arr[i].Name=name; for(int k=0;k<5;k++) { cin>>b[k]; Arr[i].a[k]=b[k]; } } socring( Arr ); cout << "-----------------------------\n"; for( size_t i=0; i!=5; ++i ) { cout << Arr[i].Name; for( size_t j=0; j!=5; ++j ) cout << ' ' << Arr[i].a[j]; cout << '\n'; } } 注意,以上代码不是我写的,我只是改了一些错误 假如用正儿八经的C++写,那应该是 ![]() #include <iostream> #include <string> #include <algorithm> struct Person { std::string name; int a[5]; }; std::istream& operator>>( std::istream& is, Person& p ) { Person t; if( !(is>>t.name) ) return is; for( auto& v : t.a ) if( !(is>>v) ) return is; p = std::move(t); return is; } std::ostream& operator<<( std::ostream& os, const Person& p ) { os << p.name; for( const auto& v : p.a ) os << ' ' << v; return os; } template<size_t N> void socring( Person (&Arr)[N] ) { for( auto& p : Arr ) std::sort( std::begin(p.a), std::end(p.a), std::greater<decltype(p.a[0])>() ); } using namespace std; int main( void ) { Person Arr[5]; for( auto& p : Arr ) cin >> p; socring( Arr ); cout << "-----------------------------\n"; for( const auto& p : Arr ) cout << p << '\n'; } |
#include<iostream>
#include<string>
using namespace std;
struct Person
{
string Name;
int a[5];
};
int socring(Person Arr[])
{
for(int i=0;i<5;i++)
{
for(int j=1;j<=5;j++)
{
for(int k=0;k<j-1;k++)
{
if(Person Arr[i].a[k]<Person Arr[i].a[k+1])
{
int n=Person Arr[i].a[k];
Person Arr[i].a[k]=Person Arr[i].a[k+1];
Person Arr[i].a[k+1]=n;
}
}
}
}
}
int main()
{
Person Arr[5];
for(int i=0;i<5;i++)
{
string name;
int b[5];
cin>>name;
Arr[i].Name=name;
for(int k=0;k<5;k++)
{
cin>>b[k];
Arr[i].a[k]=b[k];
}
}
socring(Person Arr[5]);
return 0;
}