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