一个acm题目,老是WA,不知道哪个边界没考虑!求大神!!!

题目:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1003代码:#include<stdio.h>#include<... 题目:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1003
代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int T=0,
i=0,
j=0; //循环
int grade=0,
leave=0,
day=0,
a=1; //连续次数
scanf("%d",&T);
for(i=1;i<=T;i++)
{//循环1
scanf("%d",&day);
int *p;
p=(int *)malloc(day *sizeof(int));
for(j=0;j<day;j++)
{scanf("%1d",&p[j]);}
for(j=0;j<day;j++)
{//循环2
if(p[j]==1)
{
grade=grade+a*10;
a++;
if(a>5)
{a=1;}
}
else if(p[j]==0)
{
a=1;
}
} // 循环2
leave=(grade>=750?8:(grade/50+1)/2);
printf("%d",leave);
free(p);
grade=0;
}//循环1
return 0;
}
展开
 我来答
porker2008
2014-07-21 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
#include<stdio.h>
#include<stdlib.h>
int main()
{
int T = 0,
i = 0,
j = 0;
int grade = 0,
leave = 0,
day = 0,
a = 1;
scanf("%d", &T);
for (i = 1; i <= T; i++)
{
scanf("%d", &day);
int *p;
p = (int *)malloc(day *sizeof(int));
for (j = 0; j < day; j++)
{
scanf("%1d", &p[j]);
}
for (j = 0; j < day; j++)
{
if (p[j] == 1)
{
grade = grade + a * 10;
a++;
if (a>5)
{
a = 1;
}
}
else if (p[j] == 0)
{
a = 1;
}

leave = (grade >= 750 ? 8 : (grade / 50 + 1) / 2);
//        \n  需要一个换行
printf("%d\n", leave);
free(p);
grade = 0;
a = 1; // 这里需要重置a = 1
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式