鱼C论坛

 找回密码
 立即注册
查看: 994|回复: 4

[已解决]题目:猜数游戏

[复制链接]
发表于 2020-3-23 12:48:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*
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次都没猜中,则输出“猜数结束,游戏失败!”。


到了后面就不会写了,不知道怎么去用数组来输入
最佳答案
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[10];//猜的数 
    srand((int)time(0));//产生不同的随机数种子 
    a =rand()%90+10;
    printf("请输入猜的数:");
    for(i=0;i<10;i++)
    {
        scanf("%d",&c[i]); 
        if(c[i]>a)
            printf("您猜的数大了,加油!\n");
        else if(c[i]<a)
            printf("您猜的数小了,加油!\n ");
        else
        {
            printf("您猜对了!\n");
            break;
        }
        printf("请重新输入:");
    }
    printf("您一共猜数有 %d次,您猜的数有\n",i+1);
    for(j=0;j<=i;j++)
    {
        printf("%3d",c[j]);
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[10];//猜的数 
    srand((int)time(0));//产生不同的随机数种子 
    a =rand()%90+10;
    printf("请输入猜的数:");
    for(i=0;i<10;i++)
    {
        scanf("%d",&c[i]); 
        if(c[i]>a)
            printf("您猜的数大了,加油!\n");
        else if(c[i]<a)
            printf("您猜的数小了,加油!\n ");
        else
        {
            printf("您猜对了!\n");
            break;
        }
        printf("请重新输入:");
    }
    printf("您一共猜数有 %d次,您猜的数有\n",i+1);
    for(j=0;j<=i;j++)
    {
        printf("%3d",c[j]);
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-23 13:14:17 | 显示全部楼层
sunrise085 发表于 2020-3-23 13:11
程序问题挺多的。
for循环初始条件错了;
在for循环内没有修改c的值;

做题目的时候有些心浮气躁了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)  ;
                        } 
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-23 13:34:39 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表