标题:为什么两次调用randLmt100()函数返回的值一样
只看楼主
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
结帖率:66.67%
已结贴  问题点数:20 回复次数:33 
为什么两次调用randLmt100()函数返回的值一样
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//姓名;陈光星
//学号;2016130152


int RandN1N2(int rN1 ,int rN2);
int randoper(void);
int randLmt100();
int addLmt100(int num1,int num2);
int subLmt100(int num1,int num2);
int mulLmt100(int num1,int num2);
int divLmt100(int num1,int num2);

int main()
{
    int proNum[4],ansNum[4];
    int i,j,k,l,m,n,o,p;
    i=randLmt100();
    j=randLmt100();
    addLmt100(i,j);      
    printf("还想继续做吗?如果想的话就按Y键继续\n");
    printf("如果不想的话就按任意键退出\n");
    fflush(stdin);
    char s,s1,s2,s3;
    scanf("%c",&s);
    getchar();
    fflush(stdin);
    if(s!='Y')
    {
        printf("谢谢您的参与\n");
        exit(0);        
    }
    else
    {
     k=randLmt100();
     l=randLmt100();
     subLmt100(k,l);
    }
    printf("还想继续玩吗?如果想的话就按Y键继续\n");
    printf("如果不想的话就按任意键退出\n");
     fflush(stdin);
     scanf("%c",&s1);
     getchar();
     fflush(stdin);
     if(s1!='Y')
     {
         printf("谢谢您的参与\n");
         exit(0);
     }
     else
     {
     m=randLmt100();
     n=randLmt100();
     mulLmt100(m,n);
     }
     printf("还想继续做吗?如果想的话就按Y键继续\n");
     printf("如果不想的话就按任意键退出\n");
     fflush(stdin);
     scanf("%c",&s2);
     getchar();
     fflush(stdin);
     if(s1!='Y')
     {
         printf("谢谢您的参与\n");
         exit(0);
     }
     else
     {
         o=randLmt100();
         p=randLmt100();
        divLmt100(o,p);
         
         
         
         
     }
     
     
        



    return 0;
   
 }
 
 
 
 int RandN1N2(int rN1,int rN2)
 {
     int i;
     srand((unsigned)time(NULL));
     i=rand()%(rN2-rN1+1)+rN1;
     return i;   
 }
 int randoper(void)
 {
     int i;
     i=RandN1N2(1,4);
     return i;
 }
  int randLmt100()
  {
      int i;
      i=RandN1N2(0,99);
      return i;
  }
  int addLmt100(int num1,int num2)
  {
      int answer,A;
      printf("%d+%d=",num1,num2);
      A=num1+num2;
      scanf("%d",&answer);
      if(A==answer)
      {
      printf("哇!答对了,你太棒了。\n");
      return 1;
  }
    else
    {
    printf("没关系,下次再来。正确答案是:%d\n",A);
    return 0;
}
   }
   subLmt100(int num1,int num2)
   {
       int numM1,numM2,A,answer;
       if((num1-num2)>0)
       {
       numM1=num1;
       numM2=num2;
   }
       else
       {
       numM1=num2;
       numM2=num1;
   }
       A=numM1-numM2;
       printf("%d-%d=\n",numM1,numM2);
    scanf("%d",&answer);
    if(A==answer)
    {
    printf("哇!答对了,你真的很棒。\n");
    return 1;
    }
    else
    {
    printf("没关系,你依然很棒,下次再来。准确答案是:%d\n",A);   
       return 0;
   }
   }
   mulLmt100(int num1,int num2)
   {
       int A,answer;
     A=num1*num2;
     printf("%d*%d=:\n",num1,num2);
     scanf("%d",&answer);
     if(A==answer)
     {
     printf("哇!,你真的很厉害,竟然答对了\n");
     return 1;
    }
     else
     {
     printf("没关系,你依旧很棒。正确答案是%d:\n",A);
     return 0;
    }
   }
   divLmt100(int num1,int num2)
   {
       int i,j,A,answer,numM1,numM2;
       loop:
{

    num1=randLmt100();
       num2=randLmt100();
       if((num1-num2)>0)
       {
       numM1=num1;
       numM2=num2;
   }
       else
       {
       numM1=num2;
       numM2=num1;
   }
}
       while(numM1%numM2!=0)
    {
        num1=randLmt100();
        num2=randLmt100();
        goto loop;
    }
    A=numM1/numM2;
       printf("%d/%d=:\n",numM1,numM2);
       scanf("%d",&answer);
       if(A==answer)
       {
       printf("哇!你真的很good啊\n");
       return 1;
   }
       else
       {
    printf("没关系,下次再来。正确答案是%d\n",A);
       return 0;
   }
   }
   
  
  
  
  
  
  
搜索更多相关主题的帖子: include 姓名 
2017-06-10 13:55
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
使用srand((unsigned)time(NULL)); 对种子进行初始化了吗

DO IT YOURSELF !
2017-06-10 13:58
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
得分:0 
有啊,包含在这个函数里了
int RandN1N2(int rN1,int rN2)
 {
     int i;
     srand((unsigned)time(NULL));
     i=rand()%(rN2-rN1+1)+rN1;
     return i;   
 }

2017-06-10 14:01
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 3楼 陈光星
包含在那里有啥用啊

这个初始化应该是用在rand函数使用之前  

DO IT YOURSELF !
2017-06-10 14:02
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
得分:0 
好的,我改改看看
2017-06-10 14:03
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
得分:0 
大哥,能否帮我编译看看
2017-06-10 14:08
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//姓名;陈光星
//学号;2016130152


int RandN1N2(int rN1 ,int rN2);
int randoper(void);
int randLmt100();
int addLmt100(int num1,int num2);
int subLmt100(int num1,int num2);
int mulLmt100(int num1,int num2);
int divLmt100(int num1,int num2);

int main()
{
    srand((unsigned)time(NULL));
    int proNum[4],ansNum[4];
    int i,j,k,l,m,n,o,p;
    i=randLmt100();
    j=randLmt100();
    addLmt100(i,j);     
    printf("还想继续做吗?如果想的话就按Y键继续\n");
    printf("如果不想的话就按任意键退出\n");
    fflush(stdin);
    char s,s1,s2,s3;
    scanf("%c",&s);
    getchar();
    fflush(stdin);
    if(s!='Y')
    {
        printf("谢谢您的参与\n");
        exit(0);       
    }
    else
    {
        k=randLmt100();
        l=randLmt100();
        subLmt100(k,l);
    }
    printf("还想继续玩吗?如果想的话就按Y键继续\n");
    printf("如果不想的话就按任意键退出\n");
    fflush(stdin);
    scanf("%c",&s1);
    getchar();
    fflush(stdin);
    if(s1!='Y')
    {
        printf("谢谢您的参与\n");
        exit(0);
    }
    else
    {
        m=randLmt100();
        n=randLmt100();
        mulLmt100(m,n);
    }
    printf("还想继续做吗?如果想的话就按Y键继续\n");
    printf("如果不想的话就按任意键退出\n");
    fflush(stdin);
    scanf("%c",&s2);
    getchar();
    fflush(stdin);
    if(s1!='Y')
    {
        printf("谢谢您的参与\n");
        exit(0);
    }
    else
    {
        o=randLmt100();
        p=randLmt100();
        divLmt100(o,p);




    }






    return 0;

} 



int RandN1N2(int rN1,int rN2)
{
    int i;

    i=rand()%(rN2-rN1+1)+rN1;
    return i;   
}
int randoper(void)
{
    int i;
    i=RandN1N2(1,4);
    return i;
}
int randLmt100()
{
    int i;
    i=RandN1N2(0,99);
    return i;
}
int addLmt100(int num1,int num2)
{
    int answer,A;
    printf("%d+%d=",num1,num2);
    A=num1+num2;
    scanf("%d",&answer);
    if(A==answer)
    {
        printf("哇!答对了,你太棒了。\n");
        return 1;
    }
    else
    {
        printf("没关系,下次再来。正确答案是:%d\n",A);
        return 0;
    }
}
int  subLmt100(int num1,int num2)
{
    int numM1,numM2,A,answer;
    if((num1-num2)>0)
    {
        numM1=num1;
        numM2=num2;
    }
    else
    {
        numM1=num2;
        numM2=num1;
    }
    A=numM1-numM2;
    printf("%d-%d=\n",numM1,numM2);
    scanf("%d",&answer);
    if(A==answer)
    {
        printf("哇!答对了,你真的很棒。\n");
        return 1;
    }
    else
    {
        printf("没关系,你依然很棒,下次再来。准确答案是:%d\n",A);   
        return 0;
    }
}
int mulLmt100(int num1,int num2)
{
    int A,answer;
    A=num1*num2;
    printf("%d*%d=:\n",num1,num2);
    scanf("%d",&answer);
    if(A==answer)
    {
        printf("哇!,你真的很厉害,竟然答对了\n");
        return 1;
    }
    else
    {
        printf("没关系,你依旧很棒。正确答案是%d:\n",A);
        return 0;
    }
}
int divLmt100(int num1,int num2)
{
    int i,j,A,answer,numM1,numM2;
loop:
    {

        num1=randLmt100();
        num2=randLmt100();
        if((num1-num2)>0)
        {
            numM1=num1;
            numM2=num2;
        }
        else
        {
            numM1=num2;
            numM2=num1;
        }
    }
    while(numM1%numM2!=0)
    {
        num1=randLmt100();
        num2=randLmt100();
        goto loop;
    }
    A=numM1/numM2;
    printf("%d/%d=:\n",numM1,numM2);
    scanf("%d",&answer);
    if(A==answer)
    {
        printf("哇!你真的很good啊\n");
        return 1;
    }
    else
    {
        printf("没关系,下次再来。正确答案是%d\n",A);
        return 0;
    }
}
你试试吧   不过你这个 if(s!='Y')  过于恶心 哈哈

DO IT YOURSELF !
2017-06-10 14:19
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
得分:0 

本来是想让两个不同的随机数做加减乘除的,生成两个相同的数了
2017-06-10 14:20
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
7楼代码的演示:

61+64=45
没关系,下次再来。正确答案是:125
还想继续做吗?如果想的话就按Y键继续
如果不想的话就按任意键退出
Y
87-64=
45
没关系,你依然很棒,下次再来。准确答案是:23
还想继续玩吗?如果想的话就按Y键继续
如果不想的话就按任意键退出
Y
53*24=:
456
没关系,你依旧很棒。正确答案是1272:
还想继续做吗?如果想的话就按Y键继续
如果不想的话就按任意键退出
Y
76/38=:
2
哇!你真的很good啊
请按任意键继续. . .

DO IT YOURSELF !
2017-06-10 14:22
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
得分:0 
刚学写代码,写的很丑,大神见笑了
2017-06-10 14:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477801-1-1.html




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

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