#include<stdio.h>
int main(){
int i,ans,k,max;
int j;//人數
int r;//回合
int num[500];
int peo[500];
while(1){
scanf("%d %d",&j,&r);
if(j==0&&r==0)
break;
max = 0;
for(k = j-1;k >= 0; k--){
peo[k] = 0;
}
for(i = 0;i < j*r;i++){
scanf("%d",&num[i]);
}
for(k = 0;k < j*r;k++){
peo[k%j] += num[k];
}
for(k = j-1;k >= 0; k--){
if(peo[k]>max){
max = peo[k];
ans = k+1;
}
}
printf("%d\n",ans);
}
}
求幫DEBUG
#include
int main(){
int i,ans,k,max;
int j;//人數
int r;//回合
int num[500];
int peo[500];
while(1){
scanf("%d %d",&j,&r);
if(j==0&&r==0)
break;
max = 0;
for(k = j-1;k >= 0; k--){
peo[k] = 0;
}
for(i = 0;i < j*r;i++){
scanf("%d",&num[i]);
}
for(k = 0;k < j*r;k++){
peo[k%j] += num[k];
}
for(k = j-1;k >= 0; k--){
if(peo[k]>max){
max = peo[k];
ans = k+1;
}
}
printf("%d\n",ans);
}
}
求幫DEBUG
是不是陣列開太小?500*500=250000
#include
int main(){
int i,ans,k,max;
int j;//人數
int r;//回合
int num[500];
int peo[500];
while(1){
scanf("%d %d",&j,&r);
if(j==0&&r==0)
break;
max = 0;
for(k = j-1;k >= 0; k--){
peo[k] = 0;
}
for(i = 0;i < j*r;i++){
scanf("%d",&num[i]);
}
for(k = 0;k < j*r;k++){
peo[k%j] += num[k];
}
for(k = j-1;k >= 0; k--){
if(peo[k]>max){
max = peo[k];
ans = k+1;
}
}
printf("%d\n",ans);
}
}
求幫DEBUG
for(k = j-1;k >= 0; k--){
if(peo[k]>max){
max = peo[k];
ans = k+1;
}
}
這裡可以改寫成:
for(k = 0; k <j; k++){
if(peo[k]>=max){//平局時,輸出最後出場玩家的編號
max = peo[k];
ans = k;
}
另外,最後答案輸出改為 ans+1
}