#include <iostream>
int restfish(int *ptd);
int main()
{
int sum;
int *pt = ∑
for (int sum = 5;sum<100000; sum++)
{
for (int i = 0; i < 5; i++)
{
sum = restfish(pt);
if (sum % 5 == 1)
{
printf("%d\n", sum);
}
}
}
return 0;
}
int restfish(int *ptd )
{
*ptd = ((*ptd - 1) / 5)*4;
return *ptd;
}
为什么这个运行不出结果??????VS要运行很久,而且报错,返回-1
从5开始往后++,到3121,运行不出来。。。
一个是指针问题,另一个是检测条件,要第5个人至少份到一条鱼才算成功。
#include <stdio.h>
int restfish(int *ptd);
int main()
{
for (int sum = 5; sum < 100000; sum++)
{
int rest = sum;
int share = 0;
for (int i = 0; i < 5; i++)
share = restfish(&rest);
if (share > 0)
{
printf("Minimal number of fish: %d\n", sum);
break;
}
}
return 0;
}
int restfish(int *ptd )
{
*ptd = ((*ptd - 1) / 5)*4;
return *ptd;
}
// Output
Minimal number of fish: 31
main函数第一行的 int sum; 没有初始化,数据是随机的。
for循环里定义了另一个同名变量sum,最好避免。
你把需求贴一下,再来看看怎么改合适
如果你满意我的回答,请点采纳。你的认可是我们互助的动力。