论坛: 编程破解 标题: 请各位帮忙修改这个程序! 复制本贴地址    
作者: mozhonghai [mozhonghai]    论坛用户   登录
小弟初学C语言,今天写个程序,为算一道数学题:100元钱买鸡100只,公鸡价为5元/只,母鸡价为3元/只,小鸡价为1元/7只,要求每种鸡都要有,求出买的三种的各自的数量!

代码如下:

代码:

#include"stdio.h"
#include"math.h"
main()
{
int x,y,z;
x>=0&&x<=100;
y>=0&&x<=100;
z>=0&&x<=100;
x%5=0&&y%3=0&&7%z=0;
x+y+z=100;
5*x+3*y+1/7*z=100;
printf("x=%d,y=%d,z=%d",x,y,z);
getch();
}



在编译的时候出现的错误我不知道应该怎么改,请各位帮个忙!


[此贴被 jhkdiy(jhkdiy) 在 10月19日19时58分 编辑过]

地主 发表时间: 06-10-19 16:30

回复: radom [f_h]   论坛用户   登录
回头好好看看书!

B1层 发表时间: 06-10-19 17:41

回复: jhkdiy [jhkdiy]   版主   登录
至少也要将错误信息发出来大家才能帮你啊。

B2层 发表时间: 06-10-19 19:58

回复: mozhonghai [mozhonghai]   论坛用户   登录
三个错误都显示:"需要用L值在函数 :main"
具体的我也说不清楚,我是用Turbo C V2.0 汉化版写的.


B3层 发表时间: 06-10-19 21:41

回复: mozhonghai [mozhonghai]   论坛用户   登录
我的程序是这样写的,上面的被人编辑过了,不知道怎么回事!!!

#include"stdio.h"
#include"math.h"
main()
{
int x,y,z;
x>=0&&x<=100;
y>=0&&y<=100;
z>=0&&z<=100;
x%5=0&&y%3=0&&7%z=0;
x+y+z=100;
5*x+3*y+1/7*z=100;
printf("x=%d,y=%d,z=%d",x,y,z);
getch();
}

B4层 发表时间: 06-10-19 21:48

回复: xiaoshi [xiaoshi]   论坛用户   登录
没有试验
简单的看是语法错误

x%5=0&&y%3=0&&7%z=0;

这应该是个判断语句,你写成赋值了,

应该有个判断看条件是否成立吧,
没自己看,瞎说了.

B5层 发表时间: 06-10-19 22:29

回复: mozhonghai [mozhonghai]   论坛用户   登录
楼上的哥们真是一语惊醒梦中人,我把程序改为:
#include"stdio.h"
#include"math.h"
main()
{
int x,y,z;
x>=0&&x<=100;
y>=0&&y<=100;
z>=0&&z<=100;
x%5==0&&y%3==0&&7%z==0;
x+y+z==100;
5*x+3*y+1/7*z==100;
printf("x=%d,y=%d,z=%d",x,y,z);
getch();
}

这样改之后虽然没有编译出错,错求的结果却大有问题,希望再指点我一下,谢谢!!!

B6层 发表时间: 06-10-20 09:17

回复: kert_t8 [kert_t8]   论坛用户   登录
这是C程序么?
条件判断没有if
循环遍历没有for

如果不是这个程序错的一塌糊涂,那就是我又孤陋寡闻了

还是二楼说的好....

B7层 发表时间: 06-10-20 09:29

回复: mozhonghai [mozhonghai]   论坛用户   登录
具体的运行结果是:
x=843,y=2018,z=26464

我在上面的程序不是已经将x,y,z的值都限定在0到100之间了吗?为什么还会出现这种结果?

B8层 发表时间: 06-10-20 09:37

回复: mozhonghai [mozhonghai]   论坛用户   登录
经过修改,程序已经完全:

#include <stdio.h>
main()
{
    int x,y,z;

    for(x=1;x<=20;x++)
    {
for(y=1;y<=33;y++)
        {
            z=100-x-y;
            if(z%7 != 0)
                continue;
            if(x*5+y*3+z/7 == 100)
            {
                printf("x=%d,y=%d,z=%d\n",x,y,z);
            }
        }
    }
getch();
}

运行结果为:x=10,y=13,z=77

B9层 发表时间: 06-10-20 10:50

回复: kert_t8 [kert_t8]   论坛用户   登录


学的挺快啊

B10层 发表时间: 06-10-20 11:35

回复: scandisk [scandisk]   论坛用户   登录
最近在学习PowerScript语言,编写代码如下:
代码:
integer x,y,z
for x=1 to 100
for y=1 to 100
for z=1 to 100
if 5*x+3*y+z/7=100 and x+y+z=100 then
goto abc
end if
next
next
next
abc:
messagebox("计算结果","公鸡的数量为:"+string(x)+" 母鸡的数量为:"+string(y)+" 小鸡的数量为: "+string(z))
close(w_main)




[此贴被 仙剑逍遥(scandisk) 在 10月25日01时41分 编辑过]

B11层 发表时间: 06-10-22 00:22

回复: 286 [unique]   版主   登录
鱼唾沫编的很好,只是如果把7元放外边,可以减少循环次数,加快速度,哈哈。


B12层 发表时间: 06-10-24 17:21

回复: hyhboy88 [hyhboy88]   论坛用户   登录
得好好琢磨琢磨,不要把自己该做的事交给CPU来做!

B13层 发表时间: 06-11-14 14:45

回复: kert_t8 [kert_t8]   论坛用户   登录
哈哈,楼上这个话也不全对。我曾经看过一篇文章写一个人的面试经历的,大概就是说不要把事情推给cpu,但是我觉得这个要视情况而定。比如这一道题,如果尽量让cpu少做事情,就应该直接用printf语句答应结果,那是最简单的。还是要看自己的目标是什么

B14层 发表时间: 06-11-15 16:36

回复: guaer [guaer]   论坛用户   登录
不明白:if(z%7 != 0),Z除以7的余数不为0。应该Z不是7的倍数啊,怎么会等于77呢?求教....


B15层 发表时间: 06-12-06 06:39

回复: kert_t8 [kert_t8]   论坛用户   登录
continue的意思是直接跳到循环开始进行下一轮循环,相当于把后面的都跳过了,只有条件不满足是才往下执行

B16层 发表时间: 06-12-06 19:31

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号