l 问题描述
已知某农场中有一群鸡和兔子,总共有M个头和N只脚,计算总共有多少鸡和兔子
l 要求实现函数
int GetFowlsNum(int iHeadNum, int iFootNum, int *iChickenNum, int *iRabbitNum)
【输入】iHeadNum: 总共头的数量
iFootNum: 总共脚的数量
【输出】iChickenNum: 鸡的数量
iRabbitNum: 兔子的数量
【返回】 0: 找到符合要求的鸡和兔子的数量
-1: 未找到符合要求的数量
l 示例
输入:iHeadNum =201, iFootNum=604
输出:iChickenNum=100, iRabbitNum=101
返回:0
输入:iHeadNum =201, iFootNum=123
输出:iChickenNum=0, iRabbitNum=0
返回:-1
下面是我的程序 主要的错误是没有对指针赋值就开始调用指针了 导致程序一直没结果 很简单的问题 确实是最容易犯的地方
#include <stdio.h>
#include <math.h>
int GetFowlsNum(int iHeadNum,int iFootNum,int *iChickNum,int *iRabbitNum)
{
int i=0;
int j=0;
int flag=0;
printf("%d %d\n",iHeadNum,iFootNum);
for(i=0;i<=iHeadNum;i++)
{ for(j=0;j<=iFootNum;j++)
{ if(((i+j)==iHeadNum)&&((2*i+4*j)==iFootNum))
{
*iChickNum=i;
*iRabbitNum=j;
printf("ChickenNum is %d,RabbitNum is %d\n",*iChickNum,*iRabbitNum);
flag=1;
}
}
}
if(flag==1)
{
return 0;
}
else
{
return -1;
}
}
int main()
{
int n=0,a=0,b=0;
int c=0,d=0;
int *p,*p1;
p=&c;p1=&d;
printf("input the iHeadNum\n");
scanf("%d",&a);
printf("input the iFootNum\n");
scanf("%d",&b);
n=GetFowlsNum(a,b,p,p1);
printf("%d\n",n);
}