c语言编写一个猜生日程序,向用户显示5张数字卡片,根据回答猜出用户的生日是哪一天

c语言编写一个猜生日程序,向用户显示5张数字卡片,根据回答猜出用户的生日是哪一天,第1张

#include<stdio.h>

main()

{   int low,high,mid,n

    while(1){

     mid=15low=0high=31

     printf("你的生日比%d号大还是小?大输入1,小输入2,等于3.\n",mid)

     scanf("%d",&n) 

     while(n!=3){

   if(n==1)low=mid+1

   if(n==2)high=mid-1

   mid=(low+high)/2

   printf("你的生日比%d号大还是小?大输入1,小输入2,等于3.\n",mid)

   scanf("%d",&n) 

 }

 printf("你的生日是%d号\n",mid)

}

}

如图所示,望采纳。。。。。。

Dim count1 As Integer

Private Sub Command1_Click()

count1 = count1 / 2

text

End Sub

Private Sub Command2_Click()

count1 = count1 + count1 / 2

text

End Sub

Private Sub Command3_Click()

MsgBox "恭喜你猜对了!", 65, "提示!"

End Sub

Private Sub Form_Load()

count1 = 16

text

End Sub

Private Sub text()

Form1.Caption = "生日是" &Str(count1)

End Sub

能用5次判断就能找出生日的话

应该是用了二分查找吧,

二分查找是取中间数,然后查看被查数是否大于或者小于这个中间数(当然等于的话就不用进行下面的判断了),接着改变查找区域继续查找,举个例子:要是被查数是3的话

1---15---30 15比3大,取15当最大值

1--7---15 7比3大,取7当最大值(取7不取8是因为C++里面int型除2没有四舍五入。。。)

1--3---7取出3是相等的,于是找到生日日期了。

同理,你要是想求月份的话,应该就是4次吧(心算的,大概是4。。。)

觉得不是很理解的话,也可以百度找找二分查找的解释看看。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11181374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存