| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 953 人关注过本帖
标题:偶是初二刚刚自学滴,这个问题很纠结...脑细胞都死光了还是搞不懂...大虾小 ...
只看楼主 加入收藏
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
结帖率:97.22%
收藏
已结贴  问题点数:12 回复次数:13 
偶是初二刚刚自学滴,这个问题很纠结...脑细胞都死光了还是搞不懂...大虾小虾什么的都来帮忙指点指点吧
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
    char add=0;
    char answer=0;
    int counter;
    bool correct=true;/*false为0,turn为1.*/
    int sequence=0;
    time_t seed=0;
    int number=0;
    int i=0;
    time_t now=0;
    int time_taken=0;
    int ppq=0;

    printf("“这是一个能够锻炼你记忆力的游戏”\n");
    printf("首先,记住你看到的数字");
    printf(",然后写出这个数.\n");
    printf("不过这个数会在1秒中后消失\n");
    printf("并且数字会慢慢的增加长度\n直到你猜错为止\n");
    printf("\n\n准备好了吗?现在让我们开始吧!(请输入任意字母)");
    scanf(" %c",&answer);


    do
    {
        ppq=0;
        counter=0;
        sequence=1;
        time_taken=clock();
        correct=true;

    do
    {
           correct=true;
            ++ppq;
            if(ppq!=1)
            counter++;
        while(correct)
        {
         sequence+=counter++%3==0;
         seed=time(NULL);
         now=clock();
         srand((unsigned int)seed);
         for( i=1;i<=sequence;i++)
             printf(" %d ",rand() % 10);
         for(;clock()-now<CLOCKS_PER_SEC;)
         printf("\r");
         for( i=1;i<=sequence;i++)
             printf("    ");

         if(counter==1)
             printf("\n请输入你看到的数字\n(注:数字与数字之间请打一个空格)\n");
         else
             printf("\r");
         
         srand((unsigned int)seed);
        
          for( i=1;i<= sequence;i++)                   这里为什么需要循环呢?
          {
              scanf(" %d",&number);
             if(number !=rand() % 10)
             {
                 correct=false;                      其他地方都没问题,haiqi还请虾米们把这里
                 break;                              的步骤解析一下,3Q。
                 
             }
          }
         printf("%s\n",correct?"恭喜你答对了!":"对不起,你答错了");
         
        }
        time_taken=(clock()-time_taken)/CLOCKS_PER_SEC;
        printf("\n你的分数是%d",--counter*100-5*time_taken);
        
        fflush(stdin);

            printf("\n\n你想继续下去吗?(y/n):");
        scanf(" %c",&add);   
    }while(toupper(add=='y'));

        

        printf("\n\n你想再玩一次吗(y/n)?:");
        scanf(" %c",&answer);
    }while(answer=='Y'||answer=='y');
    printf("\n\t谢谢光临\n\n");
      return 0;
}
   
搜索更多相关主题的帖子: counter correct sequence 
2012-10-13 15:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不是自己写的,脑细胞死光光也是活该。

授人以渔,不授人以鱼。
2012-10-13 15:51
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
我勒个去...书上是要我先照它的打再解析的好不好...总之大虾你都来了总不能光打酱油吧...帮忙分析一下嘛

I have not failed completely
2012-10-13 16:04
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
只有这里看不懂了
for( i=1;i<= sequence;i++)                   这里为什么需要循环呢?
          {
              scanf(" %d",&number);
             if(number !=rand() % 10)
             {
                 correct=false;                      其他地方都没问题,haiqi还请虾米们把这里
                 break;                              的步骤解析一下,3Q。
                 
             }

I have not failed completely
2012-10-13 16:06
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
版主你不能打酱油啊!!!坑爹啊.....

I have not failed completely
2012-10-13 16:13
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
天啊,就没人知道吗?这只是一个入门程序啊,乐于助人啊...

I have not failed completely
2012-10-13 17:50
dsl975708035
Rank: 3Rank: 3
来 自:平凉
等 级:论坛游侠
帖 子:101
专家分:152
注 册:2012-8-3
收藏
得分:0 
好眼熟,找找过去的帖子,两个月内。....我初三,加
q啊,975708035

唉,初三要停停了,舍不得啊。。
2012-10-13 17:59
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
我晕....重点是这道题,是这道题!就算是酱油户也得有点职业道德啊...

I have not failed completely
2012-10-13 18:12
你的双手
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:28
专家分:101
注 册:2012-10-13
收藏
得分:12 
只有这里看不懂了
for( i=1;i<= sequence;i++)                   这里为什么需要循环呢? 答:循环是对数列的每一个数字进行验证。因为随着游戏的进行,数字的数量会增加。
          {
              scanf(" %d",&number);
             if(number !=rand() % 10)
             {
                 correct=false;  答:这个地方是一个判定,当某一个数字答错的时候,直接跳出循环,不再继续判定,因为correct的值为false,那么后面的三目运算符就执行后者。
                 break;                                               
             }

双手 决定一切!
2012-10-13 18:17
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
想拿豆腐拍死你...

I have not failed completely
2012-10-13 18:19
快速回复:偶是初二刚刚自学滴,这个问题很纠结...脑细胞都死光了还是搞不懂...大 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055085 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved