一只程序猫 发表于 2020-3-23 12:48:48

题目:猜数游戏

/*
2020年3月23日10:29:11
目的 :做题
题目 :
猜数游戏。
首先通过计算机产生一个10~100之间的随机整数,然后由人来猜这个随机数是多少,最多猜10次。
要求猜的数从键盘输入,如果输入的数比随机数大,则在显示器上显示“您猜的数大了,加油!”,
如果输入的数比随机数小,则在显示器上显示“您猜的数小了,加油!”,
直到猜中或者猜的次数达到10次都没猜中结束游戏。如果猜中,显示“恭喜您,猜对了!”,
并输出所有猜过的数及其猜的次数;如果猜了10次都没猜中,则输出“猜数结束,游戏失败!”。

问题分析:
1.首先调用 随机函数 产生一个10~100之间的随机整数
2.if else

*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main (void)
{
        int a;//用于随机
        int i;//猜十次
        int c;//猜的数
        srand((int)time(0));//产生不同的随机数种子
        a =rand()%90+10;
        printf("请输入猜的数:");
        scanf("%d",c);
        for(i=10;i<=10;i++)
        {
                if(c>a)
                       printf("您猜的数大了,加油!");
                else if(c<a)
                        printf("您猜的数小了,加油! ");
                else
                        printf("您猜对了!\n");
                        printf("您一共猜数有 %d次",i);
                       
                        for(;c<=10;c++)
                        {
                                printf("您猜的数有:%3d",c);
                  }                       
        }
       
        return 0;
}



题目 :
猜数游戏。
首先通过计算机产生一个10~100之间的随机整数,然后由人来猜这个随机数是多少,最多猜10次。
要求猜的数从键盘输入,如果输入的数比随机数大,则在显示器上显示“您猜的数大了,加油!”,
如果输入的数比随机数小,则在显示器上显示“您猜的数小了,加油!”,
直到猜中或者猜的次数达到10次都没猜中结束游戏。如果猜中,显示“恭喜您,猜对了!”,
并输出所有猜过的数及其猜的次数;如果猜了10次都没猜中,则输出“猜数结束,游戏失败!”。


到了后面就不会写了,不知道怎么去用数组来输入

sunrise085 发表于 2020-3-23 13:11:55

程序问题挺多的。
for循环初始条件错了;
在for循环内没有修改c的值;
每次输入的数据没有保存,被下一次输入的值覆盖掉了,当然,昵称程序只输入了一次。
最后输出猜过的值应该在判断的for循环外;
各种小错误。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main (void)
{
    int a;//用于随机
    int i,j;//猜十次
    int c;//猜的数
    srand((int)time(0));//产生不同的随机数种子
    a =rand()%90+10;
    printf("请输入猜的数:");
    for(i=0;i<10;i++)
    {
      scanf("%d",&c);
      if(c>a)
            printf("您猜的数大了,加油!\n");
      else if(c<a)
            printf("您猜的数小了,加油!\n ");
      else
      {
            printf("您猜对了!\n");
            break;
      }
      printf("请重新输入:");
    }
    printf("您一共猜数有 %d次,您猜的数有\n",i+1);
    for(j=0;j<=i;j++)
    {
      printf("%3d",c);
    }
    return 0;
}

一只程序猫 发表于 2020-3-23 13:14:17

sunrise085 发表于 2020-3-23 13:11
程序问题挺多的。
for循环初始条件错了;
在for循环内没有修改c的值;


做题目的时候有些心浮气躁了,谢谢

jackz007 发表于 2020-3-23 13:32:43

本帖最后由 jackz007 于 2020-3-23 13:37 编辑

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int randint(int a , int b)
{
      int c                           ;
      srand(time(0))                  ;
      if(a > b) c = a , a = b , b = c ;
      return a + rand() % (b - a + 1) ;      
}

main(void)
{
      int i , j , secret , guess                                             ;
      secret = randint(10 , 100)                                             ;
      printf("\n")                                                         ;
      for(guess = secret + 1 , i = 0 ; i < 10 && guess != secret ; i ++) {
                printf("请输入一个整数:")                                     ;
                scanf("%d" , & guess)                                          ;
                if(guess == secret) {
                        printf("恭喜您,猜对了!\n")                           ;
                } else {
                        if(guess > secret) printf("您猜的数大了,加油!\n")      ;
                        else printf("您猜的数小了,加油!\n")                  ;
                        if(i < 10 - 1) {
                              printf("您还剩 %d 次机会\n\n" , 10 - i - 1)    ;
                        } else {
                              printf("\n猜数结束,游戏失败!\n")               ;
                              printf("其实,这个目标数是:%d\n\n" , secret);
                        }
                }
      }
}

一只程序猫 发表于 2020-3-23 13:34:39

jackz007 发表于 2020-3-23 13:32


非常感谢
页: [1]
查看完整版本: 题目:猜数游戏