gegeda123
2016-12-16 08:52
采纳率: 25%
浏览 1.2k
已采纳

求解一道C语言题目!!!!

1. 电脑随机产生1000—9999之间的数字(包括1000、9999);
提示:用rand函数,该函数在stdlib.h库中,并保证多次运行产生不同的随机数
2. 玩家每轮有七次猜数的机会,如果七次都没有猜到,则失败,判为0分;
3. 玩家每轮可以请求帮助,提问关于产生数字的信息,扣分细则如下;
4. 游戏以百分制形式,初始分为100,最后得分最多为赢家。
 帮助内容及扣分细则:
. 判断你所猜的数中各位数字对应位置正误情况,以R表正确,E表错误。若随机数是2537,而猜的数是1234,则输出EERE,代表猜的数第3位正确,第1,2,4位错误。
——扣当前分数的1/10
. 判断你所猜的数中正确数字是什么。若随机数是2537,而猜的数是1234,则输出有两个数字正确,它们是2,3。 ——扣当前分数的1/10
#include
#include
int sort = 100;
int main()
{
int in = 0;
int r = 0;
while (1)
{
r = rand();
while (1000 <= r && r <= 9999)
{
printf("please enter data:");
scanf("%d", &in);
if (in > r || in < r) //如果大或小,减去当前分数的1/10
sort -= sort / 10;
printf("当前分数%d\n", sort);
}
}
return 0;
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Mr.Stone^_^ 2016-12-16 09:06
    已采纳

    #include "stdio.h"
    #include "stdlib.h"
    int sort = 100;
    int main()
    {
    int in = 0;
    int r = 0;
    int sum,j;
    while (1)
    {
    i=0;
    char help;
    r = rand();
    while (1000 <= r && r <= 9999 && sum {
    printf("please enter data:");
    scanf("%d", &in);
    printf("Do you need help?Y/N");//是否选择帮助,Y选择帮助,N不需要帮助
    scanf("%c",&help);
    if(help=='Y')//Y选择帮助
    {
    int next,next1;
    int num1,num2;
    printf("Select help mode :position:1/Correct:2");//选择帮助类型,1为查看对应位置正确性,2为查看正确数字
    scanf("%d",&j);
    if(j==1)//1为查看对应位置正确性
    {
    num1=in;num2=r;
    char s[4];
    for(next=0;next {
    if(num1%10==num2%10)//对应位置对比
    {
    s[4-next-1]="R";
    }
    else
    {
    s[4-next-1]="E";
    }
    num1=num1/10;
    num2=num2/10;
    }
    puts(s);//输出对比结果
    }
    else if(j==2)//2为查看正确数字
    {
    int s[4];
    num1=in;
    int g=0;
    for(next=0;next {
    num2=r;
    for(next1=0;next1 {
    if(num1%10==num2%10)
    {
    s[g++]=num2%10;
    }
    num2/=10;
    }
    num1/=10;
    }
    puts(s);//输出对比结果
    }
    sort-=sort/10;//扣除使用帮助分
    printf("当前分数%d\n", sort);
    }
    if (in > r || in < r) //如果大或小,减去当前分数的1/10
    sort -= sort / 10;
    printf("当前分数%d\n", sort);
    sum++;//
    }
    }
    return 0;
    }

    已采纳该答案
    打赏 评论
  • Mr.Stone^_^ 2016-12-16 09:07

    没有编译运行,不确定正确性,这是最简单的思路,你应该能够看懂。

    打赏 评论
  • qq_23565095 2016-12-16 09:19

    好复杂好复杂好复杂好复杂好复杂

    打赏 评论

相关推荐 更多相似问题