fork download
  1.  
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. struct SinhVien{
  5. string name, lop, date;
  6. float GPA;
  7. int id;
  8. };
  9. void input(SinhVien& A){
  10. cin.ignore();
  11. getline(cin, A.name);
  12. getline(cin, A.lop);
  13. getline(cin, A.date);
  14. cin>>A.GPA;
  15. }
  16. void nhap(SinhVien ds[], int N){
  17. for(int i=0; i<N; i++){
  18. ds[i].id=i+1;
  19. input(ds[i]);
  20. }
  21. }
  22. void name(string s){
  23. for(int i=0; i<s.length(); i++){
  24. s[i] = tolower(s[i]);
  25. }
  26. vector<string>v;
  27. stringstream ss(s);
  28. string token;
  29. while(ss>>token){
  30. v.push_back(token);
  31. }
  32. int n = v.size();
  33. for(int i=0; i<n; i++){
  34. v[i][0] = toupper(v[i][0]);
  35. }
  36. for(int i=0; i<n; i++){
  37. cout<<v[i]<<" ";
  38. }
  39. }
  40. void sapxep(SinhVien ds[], int N){
  41. for(int i=0; i<N; i++){
  42. int max=i;
  43. for(int j=i+1; j<N; j++){
  44. if(ds[j].GPA > ds[max].GPA){
  45. max=j;
  46. }
  47. }
  48. SinhVien temp=ds[i];
  49. ds[i]=ds[max];
  50. ds[max]=temp;
  51. }
  52. }
  53. void in(SinhVien ds[], int N){
  54. for(int i=0; i<N; i++){
  55. if(ds[i].date[1]=='/') ds[i].date.insert(0,"0");
  56. if(ds[i].date[4]=='/') ds[i].date.insert(3,"0");
  57. string s;
  58. if(ds[i].id<=9) s="B20DCCN00";
  59. else s="B20DCCN0";
  60. cout<<s<<ds[i].id<<" ";
  61. name(ds[i].name);
  62. cout<<ds[i].lop<<" ";
  63. cout<<ds[i].date<<" ";
  64. cout<<fixed<<setprecision(2)<<ds[i].GPA<<"\n";
  65. }
  66. }
  67. int main(){
  68. struct SinhVien ds[50];
  69. int N;
  70. cin >> N;
  71. nhap(ds, N);
  72. sapxep(ds,N);
  73. in(ds, N);
  74. return 0;
  75. }
Success #stdin #stdout 0.01s 5272KB
stdin
Standard input is empty
stdout
Standard output is empty