.h
#ifndef _CAL_H
#define _CAL_H
#include <stdio.h>
typedef unsigned char U1;
typedef unsigned short U2;
typedef unsigned int U4;
void vd_g_SloveOne(U1 u1_head, U1 u1_foot);
void vd_g_GetNumber();
void vd_g_SloveTwo(U1 u1_head, U1 u1_foot);
#endif
.c
#include "cal.h"
int main()
{
while (1)
{
vd_g_GetNumber();
}
}
void vd_g_GetNumber()
{
U4 u4_head = 0;
U4 u4_foot = 0;
printf("please input chicken&rabbit head and foot number:");
scanf_s("%d,%d",&u4_head,&u4_foot);
vd_g_SloveTwo((U1)u4_head,(U1)u4_foot);
vd_g_SloveOne((U1)u4_head, (U1)u4_foot);
}
void vd_g_SloveOne(U1 u1_head,U1 u1_foot)
{
U1 u1_chicken_num = 0;
U1 u1_rabbit_num = 0;
U1 u1_flag = 0;
for (u1_chicken_num = 0; u1_chicken_num <= u1_head; u1_chicken_num++)
{
u1_rabbit_num = u1_head - u1_chicken_num;
if (2 * u1_chicken_num + 4 * u1_rabbit_num == u1_foot)
{
printf("解法一:鸡:%d\t 兔:%d\n",u1_chicken_num,u1_rabbit_num);
u1_flag = 1;
break;
}
}
if (!u1_flag)
{
printf("error\n");
}
}
void vd_g_SloveTwo(U1 u1_head, U1 u1_foot)
{
U1 u1_chicken_num = 0;
U1 u1_rabbit_num = 0;
U1 u1_flag = 0;
for (u1_chicken_num = 0; u1_chicken_num <= u1_foot; u1_chicken_num+=2)
{
u1_rabbit_num = (u1_foot - u1_chicken_num)/4;
if (((u1_foot - u1_chicken_num) % 4 ==0)&&(u1_rabbit_num + u1_chicken_num / 2 == u1_head))
{
printf("解法二:鸡:%d\t 兔:%d\n", u1_chicken_num/2, u1_rabbit_num);
u1_flag = 1;
break;
}
}
if (!u1_flag)
{
printf("error\n");
}
}