求助,为什老提示:\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]);
} 展开
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]);
} 展开
展开全部
#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就跳出去,重新下一次循环!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询