pku acm1003为啥错了

以下是我写的#include<stdio.h>intmain(){floatn=0,a[100];inti,j;for(i=0;;i++){scanf("%f",&a[i... 以下是我写的
#include<stdio.h>
int main()
{ float n=0,a[100];int i,j;
for(i=0;;i++)
{scanf("%f",&a[i]);
if(a[i]==0) break;}
for(j=0;a[j]!=0;j++)
{for(i=0;n<a[j];i++)
n+=1/(i+2);
printf("%d card(s)",i)}
}
怎么错了呢?
展开
 我来答
ljinlong_1988
2010-02-07 · 超过11用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:32万
展开全部
(1)第一个循环没问题;
(2)第二个循环改为:
for(j=0;a[j]!=0;j++)
{
n=0;//此处每次循环n都要初始化!
for(i=0;n<a[j];i++)
n+=1.00/(i+2);
//1改为1.00,因为1/(i+2)结果为整数0;会陷入死循环n总为零;跳不出来。
printf("%d card(s)",i)//这里应该只有一个空格,不然AC不了!
}
曼栀忘B
2010-02-07 · 超过11用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:38万
展开全部
本人觉得思维混乱,首先是第一个for循环就有问题,不能结束,是死循环,第二数组没给出后面的赋值产生的是随机数~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式