如何修复C ++中的作业解决方案中的错误?

时间:2017-01-21 18:22:14

标签: c++

我需要编写一个程序来读取n个A联赛足球队的统计数据,并打印出属于联赛B的球队名称。

  

一支球队属于乙级联赛,如果它在m个星期间玩得不到k分,其中m在1到150之间。每支球队获胜三分,平局获得一分,失去时获得零分。 / p>      

输入规范:在第一行中,您将获得0&lt; 0的团队数量。 n≤500且点0 <0。 k≤300需要留在联盟A.然后在以下n行中,将有球队名称及其结果。分号表示输入系列的结束。

     

2号代表胜利,1号代表平局,0号代表亏损。

     

输出规格:

Sample Input I
4 19
Team_A 1 1 1 1 1 1 1 1 1 0 1 1 1 0 2 1 0 ;

Team_B 0 1 0 2 2 1 1 0 1 1 0 2 0 1 0 0 2 ;

Team_C 0 0 1 0 2 2 2 1 1 1 1 1 0 0 2 1 2 ;

Team_D 0 1 0 1 2 1 2 1 0 0 0 2 2 2 0 0 0 ;

Sample Output I

Team_A 16

Team_B 18

这是我提出的代码,但输出错误,我不知道为什么,

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
 {
  int n,points,sum=0,i,value;
  char name[15];
  char p;
  scanf("%d %d",&n,&points);
  for(i=1;i<=n;i++)
  {
    scanf("%s",&name);

   do
  {

    scanf("%c ",&p);
    if(p!=';')
    {
        value=p-48;
        sum=sum+value;
    }


   }while(p!=';');

    if(sum<=points)
      printf("%s %d",name,sum);
    }
    return 0;
     }

1 个答案:

答案 0 :(得分:0)

您可以通过使用输出语句填充程序来查找问题 如果在scanf("%c ",&p);之后添加输出语句以显示p的值,您会发现p的第一个值是空格字符,这会破坏您的计算。
同样,如果您追踪value的值,您会发现您忘记将每个团队的此变量初始化为零。