[C++] 奥运排行榜 →→→→→进入此内容的聊天室

来自 , 2021-03-24, 写在 C++, 查看 138 次.
URL http://www.code666.cn/view/c92a1032
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef struct node *Node;
  4. struct node
  5. {
  6.     int goldMadal;//金牌
  7.     int medal;//奖牌
  8.     int populous;//人口
  9.  
  10. }*Data;
  11. int n;
  12.  
  13. int GoldTotal(int K)
  14. {
  15.     int Sum=Data[K].goldMadal;
  16.     int Paimin=1;
  17.     for(int i=0; i<n; i++)
  18.     {
  19.         if(Data[i].goldMadal>Sum)
  20.             Paimin++;
  21.     }
  22.     return Paimin;
  23. }
  24. int MedalTotal(int K)
  25. {
  26.     int Sum=Data[K].medal;
  27.     int Paimin=1;
  28.     for(int i=0; i<n; i++)
  29.     {
  30.         if(Data[i].medal>Sum)
  31.             Paimin++;
  32.     }
  33.     return Paimin;
  34. }
  35. int GoldPer(int K)
  36. {
  37.     double Sum=Data[K].goldMadal*1.0/Data[K].populous;
  38.     int Paimin=1;
  39.     for(int i=0; i<n; i++)
  40.     {
  41.         if(Data[i].goldMadal*1.0/Data[i].populous>Sum)
  42.             Paimin++;
  43.     }
  44.     return Paimin;
  45. }
  46. int MedalPer(int K)
  47. {
  48.     double Sum=Data[K].medal*1.0/Data[K].populous;
  49.     int Paimin=1;
  50.     for(int i=0; i<n; i++)
  51.     {
  52.         if(Data[i].medal*1.0/Data[i].populous>Sum)
  53.             Paimin++;
  54.     }
  55.     return Paimin;
  56. }
  57.  
  58. int Min(int a,int b,int c,int d)
  59. {
  60.     int flag1,flag2,flag;
  61.     if(a>b)
  62.     {
  63.         a=b;
  64.         flag1=2;
  65.     }
  66.     else flag1=1;
  67.     if(c>d)
  68.     {
  69.         c=d;
  70.         flag2=4;
  71.     }
  72.     else flag2=3;
  73.     if(a>c)
  74.     {
  75.         a=c;
  76.         flag=flag2;
  77.     }
  78.     else flag=flag1;
  79.     cout<<a<<":"<<flag;
  80.     return a;
  81. }
  82. int main()
  83. {
  84.     int m;
  85.     cin>>n>>m;
  86.     Data=(Node)malloc(sizeof(struct node)*n);
  87.     for(int i=0; i<n; i++)
  88.         cin>>Data[i].goldMadal>>Data[i].medal>>Data[i].populous;
  89.  
  90.     for(int i=0; i<m; i++)
  91.     {
  92.         int con;
  93.         cin>>con;
  94.         if(i)
  95.             cout<<" ";
  96.         int gold=GoldTotal(con);
  97.         int medal=MedalTotal(con);
  98.         int pgold=GoldPer(con);
  99.         int pmedal=MedalPer(con);
  100.         Min(gold,medal,pgold,pmedal);
  101.     }
  102.     return 0;
  103. }

回复 "奥运排行榜"

这儿你可以回复上面这条便签

captcha