當前位置:編程學習大全網 - 編程語言 - 足球聯賽排名C++程序

足球聯賽排名C++程序

#include<stdio.h>

#define N 11

void main()

{ int i,j;

struct team{int win;

int loss;

int score;

int sign;

};

int n,m,k,a,b,c;

while(scanf("%d%d",&n,&m)!=EOF)

{ if(n==0&&m==0) break;

struct team tea[N]={{0,0,0,0},{0,0,0,1},{0,0,0,2},

{0,0,0,3},{0,0,0,4},{0,0,0,5},

{0,0,0,6},{0,0,0,7},{0,0,0,8},

{0,0,0,9},{0,0,0,10}};

struct team t;

while(m--)

{ scanf("%d%d%d",&a,&b,&c);

if(c==1)

{ tea[a].score=3+tea[a].score; //算總分

tea[b].score=0+tea[b].score;

tea[a].win=1+tea[a].win;

tea[b].loss=1+tea[b].loss;

}

if(c==-1)

{ tea[a].score=-1+tea[a].score; //妳說

tea[b].score=3+tea[b].score;

tea[a].loss=1+tea[a].loss;

tea[b].win=1+tea[b].win;

}

if(c==0)

{ tea[a].score=1+tea[a].score;

tea[b].score=1+tea[b].score;

}

}

// for(i=1;i<=n;i++) 此處代表每個隊的得分,勝的場數,敗的場數

// printf("%d %d %d %d\n",i,tea[i].score,tea[i].win,tea[i].loss);

k=n;

for(j=1;j<n;j++,k--)

for(i=1;i<k;i++)

{ if(tea[i+1].score<tea[i].score) { t=tea[i]; //積分高的隊排後面。

tea[i]=tea[i+1];

tea[i+1]=t;

}

else if(tea[i].score==tea[i].score){ if(tea[i].win>tea[i+1].win) { t=tea[i];//積分壹樣的隊勝場數多的排後面

tea[i]=tea[i+1];

tea[i+1]=t;

}

else if(tea[i].win==tea[i+1].win) {if(tea[i].loss<tea[i+1].loss) {t=tea[i]; //積分壹樣且勝場數壹樣的隊負場數少的排後面

tea[i]=tea[i+1];

tea[i+1]=t;

}

else if(tea[i].loss==tea[i+1].loss) {if(tea[i].sign<tea[i+1].sign) {t=tea[i];//若還不能分出先後,編號小的排後面。

tea[i]=tea[i+1];

tea[i+1]=t;

}

}

}

}

}

for(i=n;i>1;i--) //輸出打印

printf("%d %d ",tea[i].sign,tea[i].score);

printf("%d %d",tea[i].sign,tea[i].score);

printf("\n");

}

}

  • 上一篇:掃地機器人什麽牌子好?
  • 下一篇:測試自己哪方面天賦高,在高中如何判斷自己在哪個專業比較有天賦?
  • copyright 2024編程學習大全網