C语言 鸡兔同笼问题

Description鸡和兔关在同一笼子中,已知总数量n和腿的总数量m,求鸡的数量和兔的数量。Input输入2个整数分别是n和mOutput输出鸡的数量和兔的数量,中间用... Description鸡和兔关在同一笼子中,已知总数量n和腿的总数量m,求鸡的数量和兔的数量。 Input输入2个整数分别是n和mOutput输出鸡的数量和兔的数量,中间用空格隔开,如果无解则输出No 我的程序 #include<stdio.h>
int main(void)
{
int n,m,a,b;
scanf("%d%d",&n,&m);
a=2*n-m/2;
b=n-a; if(a%1!=0||b%1!=0)
printf("No\n");
else
printf("%d %d\n",a,b);
return 0;
}用的是ACM判题系统,C-FREE测试正常,上传系统四次都显示WA,求大神帮看错误和不简洁的地方
测试用例Sample Input14 32Sample Output12 2
展开
 我来答
神速小羊
2016-01-11 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:2%
帮助的人:4347万
展开全部

#include <stdio.h>

void main()

{    int a,b,c,d;

    printf("这是一个用于算鸡兔同笼的小程序\n请输入鸡兔的总数"); 

    scanf("%d",&a); 

    if(a>=0)

    {

        printf("\n请输入鸡兔脚的总数");

        scanf("%d",&b);

        if(b%2==1)

            printf("脚的数量出现奇数,真奇怪啊!\n");

        else if(b<=a*4&&b>=a*2)

        {

            c=(4*a-b)/2; // 鸡的数目 

            d=a-c;  // 兔的数目 

            if(c*2+d*4==b)

                printf("鸡有%ld只\n兔有%ld只\n",c,d); // c和d反了 

            else

                printf("这个真难,计算机也没法算!\n");    

        }

        else

            printf("输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\n",a*2,a*4);    

    }

    else

        printf("数量不能为负!\n");    

}

约定20125
2018-02-19 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2820万
展开全部

#include <stdio.h>

void main()

{    int a,b,c,d;

printf("这是一个用于算鸡兔同笼的小程序\n请输入鸡兔的总数"); 

scanf("%d",&a); 

if(a>=0)

{

printf("\n请输入鸡兔脚的总数");

scanf("%d",&b);

if(b%2==1)

printf("脚的数量出现奇数,真奇怪啊!\n");

else if(b<=a*4&&b>=a*2)

{

c=(4*a-b)/2; // 鸡的数目 

d=a-c;  // 兔的数目 

if(c*2+d*4==b)

printf("鸡有%ld只\n兔有%ld只\n",c,d); // c和d反了 

else

printf("这个真难,计算机也没法算!\n");    

}

else

printf("输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\n",a*2,a*4);    

}

else

printf("数量不能为负!\n");    

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜哥是个小天才
2018-08-27 · TA获得超过1809个赞
知道答主
回答量:32
采纳率:0%
帮助的人:9084
展开全部

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c,d;

a=35,b=94;

c=2*a-b/2;

d=b/2-a;

cout<<"c="<<c<<"d="<<d<<endl;

return 0;

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。



本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
solotony
2014-03-17 · TA获得超过599个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:567万
展开全部

各位对异常情况的理解有点问题哈,其实很简单。

C程序总是能算出答案,无论什么数据,只是这个数据无法再算回去。

因此,异常的情况是m != 4 * a + b * 2 || n != a + b,当然,要注意m,n不能小于1,负数和0不是有效输入。


另举两个我认为有趣的解法:

  1. 让鸡和兔都举起两只脚,这里应该只能数到兔子的脚,(m - 2*n)/2即得兔子的数量。

  2. 让鸡放下翅膀当脚,这时有4n个脚,其中真的脚只有m个,有4*n - m个翅膀,鸡的数量是(4 * n - m) / 2

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松甜恬0Je4ba
2014-03-16 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3356万
展开全部
你使用的是下面这个算法:
鸡的只数=(4×鸡兔总只数-鸡兔总脚数)÷2
兔的只数=鸡兔总只数-鸡的只数

但是不懂的是
if(a%1!=0||b%1!=0)

你这里是什么意思??

另外,输出时,别输出\n 这种多余的字符,只按照要求以空格分隔就好了??
更多追问追答
追问
if(a%1!=0||b%1!=0) 是 “如果无解则输出No”,就是a和b不是整数的情况 ,是不是我想错了。。。

\n这种是为了看起来顺眼打上的-.-,前几个也是这么提交的,问题应该不是这个吧
追答
a b怎么可能不是整数呢?你声明的a 和 b都是int类型,那表示  a 和b一定是整数。所以这个无解就不怎么对了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式