鱼C论坛

 找回密码
 立即注册
查看: 4018|回复: 10

这到底是怎么回事?求解释

[复制链接]
发表于 2013-8-24 17:07:30 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 小川 于 2013-8-24 17:45 编辑

for (x=n,i=1 && flag;i<=5;i++)和for (i=1,x=n && flag;i<=5;i++)到底相同不;假如n初值设为6,调试时第一个x=6,而第二个x=1;小弟百思不得其解,求大神解释。程序题目是这样的:A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼?代码
/*抓鱼和捕鱼*/

#include <stdio.h>
#include <stdlib.h>

void main()
{
        int n,i,x,flag=1;

        for (n=6;flag;n++)
        {
                for (x=n,i=1 && flag;i<=5;i++)  //for(i=1,x=n && flag;i<=5;i++)这样为啥不行

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 17:13:33 | 显示全部楼层
贴个完整的代码吧,你调试到哪步大家也猜不到。无法还原犯罪现场。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 17:36:42 | 显示全部楼层
麻烦你按格式贴出全部代码好不好??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-24 17:45:57 | 显示全部楼层
好的,贴啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 18:03:37 | 显示全部楼层
不知道是不是我理解错题目了语文成绩差没办法 按我的理解是不是每次有人醒来分成无份多一条然后拿走自己那一份到最后一次都是分成无份多一条 要求鱼的最小条数 是不是?是的话就简单了
#include<stdio.h>
int main()
{
        int i,sum = 1;
        for(i = 1;i<=5;++i)
        {
                sum = sum * 5 + 1;/*要最少并且每次都是多一条鱼就是最后一次没人只能分到一条
                                    然后前一次就是这次的总数*5+1 一共有5个人所有进行五次循环*/
        }
        printf("%d\n",sum);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 19:36:00 | 显示全部楼层
第一个问题:
      for (x=n,i=1 && flag;i<=5;i++)和for (i=1,x=n && flag;i<=5;i++)到底相同不
      它们是不相同的  i=1 && flag表示 1和flag 进行与运算 并把结果放到 i 中,第二个就不用解释了吧?
第二个问题:代码贴出了不懂在问,也不一定对!
        int j, i = 0;      // j是一个临时变量 i表示最小需要多少条鱼
        int count =0;
        for(i=6; ; i++)
        {
                j = i;
                tmp:
                if(j%5 == 1)
                {
                        if(j/5 == 0 && count == 5)   // 判断是否分了5次鱼,并且不能再分了
                        {
                                break;
                        }
                        if(j/5 != 0 && count <= 5)  // 判断是否分了5次鱼, 并且很能再分鱼
                        {
                                count++;
                                j = j/5;
                                goto tmp;    // 利用goto语句进行循环
                        }
                        else
                        {
                                count = 0;  // 如果以上都不成立就把 count的计数清零
                        }                        
                }
        }

        printf("%d\n", i);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 19:54:42 | 显示全部楼层
同意5楼!{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 20:42:10 | 显示全部楼层

i/5 != 0也就是 i >= 5 你判断这个干嘛??
还有 count 肯定<5啊你判断这个又想干嘛??
j /= 5 我也没看懂
然后你用goro循环想干嘛不理解因为以上的不懂
最后j<5 干嘛把count清零???
诶 菜鸟真心看不懂 求解释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 21:14:57 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-8-24 20:42
i/5 != 0也就是 i >= 5 你判断这个干嘛??
还有 count 肯定<5啊你判断这个又想干嘛??
j /= 5 我也没 ...

我写的有点复杂了,误导你了不好意思,5楼比我写的好多了你看他的就可以了!! {:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 21:58:55 | 显示全部楼层
佐少love 发表于 2013-8-24 21:14
我写的有点复杂了,误导你了不好意思,5楼比我写的好多了你看他的就可以了!!

我不就是五楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-25 10:39:57 | 显示全部楼层
新手,学习中,呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 23:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表