软件测试——C语言鸡兔同笼问题

已知鸡兔总头数为H,总脚数为F,求鸡兔各有多少只?

设鸡的数量为x,兔的数量为y,其计算公式为:

请把下面的程序补充完整,并输入头10,脚20,运行结果。输入:10,30

程序如下:

\*该文件完成后以st_b1.c的文件名保存在考生文件夹下*\

#include <stdio.h>

main()

    {

float H,F,x,y;  

print(“请输入鸡兔的总头数和总脚数:”);  

scan(“%f,%d”,&H,&F);  

x=  

y=

printf(“笼中有鸡%d只,有兔%d只\n”,x,y);

}

一、源代码的错误

(1)main()  //没有返回值类型

(2)float H,F,x,y;  //类型应该为int类型

(3)print(“请输入鸡兔的总头数和总脚数:”);  //语法错误printf

(4)scan(“%f,%d”,&H,&F);  //语法错误scanf,类型变量H类型错误%d

(5)x=  //求鸡的个数公式未输入代码不完整

(6)y= //求兔的个数公式未输入

(7)运行时闪退 //while(1)或getchar()或#include<Window.h> 、system(pause)使程序暂停

二、完整代码

#include "stdafx.h"

#include<stdio.h>

void main()

{

int H,F, x, y;  //类型为整型

printf("请输入鸡兔的总头数和总脚数:");

scanf("%d,%d",&H,&F);

if(H<=0||F<=0)

{

printf("请输入大于等于0的整数!!");

}

else

{

if((F%2)!=0)

{

printf("总脚数应输入偶数");

}

else

{

x=(4*H-F)/2;

y=(F-2*H)/2;

if(F<2*H)

{

printf("总脚数必须大于等于%d\n",2*H);

}

else

{

if(x+y==H&&2*x+4*y==F)

{

printf("笼中有鸡%d只,有兔%d只\n",x,y);

}

}

}

}

while(1);//防止闪退

}

三、测试用例

  序号                输入情况                                  输入数据               输出

(1)                 输入字符                                  a,b             请输入大于等于0的整数!!

(2)                输入小于0的整数                       -1,0            请输入大于等于0的整数!!

(3)                输入小数                                 1.1,2.3          请输入大于等于0的整数!!

(4)                输入的总脚数为奇数                    1,3              总脚数应输入偶数!!

(5)                输入的总脚数少于总头数的2倍, 3,4          总脚数必须大于等于6!!

                  即,某数量的总头数与总脚数不匹配

(6)            输入正确的总头数和总脚数                2,6          笼中有鸡1只,有兔1只!!

(7)           题目要求测试数据                            10,20        笼中有鸡10只,有兔0只!!

(8)                题目要求测试数据                     10,30           笼中有鸡5只,有兔5只!!

四、运行结果

1输入非数字字符

2输入大于等于0的整数

3输入非整型数字

4.输入的总脚数为奇数

5.输入的总脚数少于总头数的2倍,即,某数量的总头数与总脚数不匹配

6.输入正确的总头数和总脚数

7.题目要求测试数据10,20

8.题目要求测试数据10,30

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值