求助,为什老提示:\Windows\System32\plp.cpp(11) : error C2143: syntax error : missing ';' before '&

#include"stdio.h"voidmain(){intfish[5],i;fish[5]=6;while(1){for(i=5;i>=2;i--)fish[i-1... #include "stdio.h"
void main()
{
int fish[5],i;
fish[5]=6;
while(1)
{
for(i=5;i>=2;i--)
fish[i-1]=fish[i]*5/4+1;
for(i=5;i>=2;i--)
if(fish[i]%5==1)&&i==1
break;
else
fish[5]=fish[5]+5;
}
for(i=1;i<=5;i++)
printf("%d\n",fish[i]);
}
展开
 我来答
ok洛阳水席
2013-05-31 · TA获得超过1839个赞
知道小有建树答主
回答量:580
采纳率:50%
帮助的人:514万
展开全部
#include "stdio.h"
void main()
{
int fish[5],i;
    fish[4]=6;
    while(1)
{
for(i=4;i>=2;i--)
        fish[i-1]=fish[i]*5/4+1;
        for(i=4;i>=2;i--)
        if(fish[i]%5==1&&i==1)
         break;
        else 
        fish[4]=fish[4]+5;
}
    for(i=1;i<5;i++)
    printf("%d\n",fish[i]);
}

你把&&i==1放在括号外去了。

另外你使用数组越界了!int fish[5]

fish[0]~fish[4],没有fish[5]!!!!

另外你的程序看不出来目的是什么……囧!

你这程序按你写的意思可能是这样:

#include "stdio.h"
void main()
{
int fish[5],i;
    fish[4]=6;
    while(1)
{
for(i=4;i>0;i--)
        fish[i-1]=fish[i]*5/4+1;
        if(fish[1]%5==1)
         break;
        else 
        fish[4]=fish[4]+5;
}
    for(i=0;i<5;i++)
    printf("%d\n",fish[i]);
}
追问
A、B、C、D、E 五人合伙夜间捕鱼,各自在湖边的树丛中找地方睡着了。日上三竿,A第一个醒来,他将鱼平分作五份,把多余的一条扔回湖中,拿自己的一份回家去了。B、C、D、E    依次醒来,也都按同样的办法分鱼。问五人至少合伙捕到多少条鱼?每个人醒来后看到的鱼数是多少条?
追答

要用数组的话,应该这样写:

#include "stdio.h"
void main()
{
    int fish[5],i,flag;
    fish[4]=6;
    while(1)
    {
flag = 0;
        for(i=4;i>0;i--)
{
if(fish[i]%4!=0)
{
flag = 1;
break;
}
fish[i-1]=fish[i]*5/4+1;
}
        fish[4]=fish[4]+5;
if(flag)
continue;
        if(fish[1]%5==1)
         break;
    }
    for(i=0;i<5;i++)
    printf("%d\n",fish[i]);
}

每个人剩下的必须满足能分成四份!即fish[i]%4==0要一直成立!

否则fish[i-1]=fish[i]*5/4+1; 得到的数据是错误的!这里设置一个标志flag来表示分配成功即可,一旦中间有人剩下的鱼不满足%4==0就跳出去,重新下一次循环!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式