[关闭]
@sensitive-cs 2016-10-19T16:01:42.000000Z 字数 534 阅读 730

N - Marks

分析:

有n个人,m个学科,每个学科都有分数最高的学生,即successful-student,找出这种学生的人数。

思路:

首先找出每科成绩的最高分,接着寻找每科成绩的最高分得者,当某个学生被记入后,此学生的所有成绩清空,然后继续寻找,直到找到最后一个为止。

代码:

  1. #include <stdio.h>
  2. #include <string.h>
  3. char a[110][110];
  4. char max[110];
  5. int main()
  6. {
  7. int stu,sub;
  8. int i,j,sum = 0;
  9. for (i = 0;i < 110;i++)
  10. max[i] = '0';
  11. scanf("%d%d",&stu,&sub);
  12. getchar();
  13. for (i = 1;i <= stu;i++)
  14. scanf("%s",a[i]);
  15. for (j = 0;j < sub;j++)
  16. for (i = 1;i <= stu;i++)
  17. {
  18. if (a[i][j] >= max[j])
  19. max[j] = a[i][j];
  20. }
  21. for (j = 0;j <sub;j++)
  22. for (i = 1;i <= stu;i++)
  23. {
  24. if (a[i][j] == max[j])
  25. {
  26. sum++;
  27. memset(a+i,'0',sizeof(char)*110);
  28. }
  29. }
  30. printf("%d\n",sum);
  31. return 0;
  32. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注