| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 965 人关注过本帖
标题:求指导!!求指导!!
只看楼主 加入收藏
约束小朋友
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-5-28
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:11 
求指导!!求指导!!
本人初次写随机函数,可是不知道为什么运行不了
又不能找出问题所在
望指出问题所在
和指导我如何修改问题
以下是本人写的程序


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
    srand((int)time(NULL));
   int i,j,k,sum,shuru,r,f,answer;
   i=rand()%100;
   j=rand()%100;
   r=0;
   f=0;
    do{
       for(k=0;k<=10;k++){
       if(i%k==0)
          printf("%d+%d=",i,j);
      else if(i%k==1)
          printf("%d*%d=",i,j);
      else if(i%k==2)
          printf("%d/%d=",i,j);
      else
          printf("%d/%d=",i,j);
   }
   scanf("%d",&shuru);
  
   if(sum==i+j||sum==i*j||sum==i/j||sum==i-j)
      {
       printf("You are right\n");
       r++;
   }
   else  if(sum!=i+j||sum!=i*j||sum!=i/j||sum!=i-j)
      {
       printf("You are fault\n");
       f++;
   }
       printf("Are you contine?If you want to over please click the 0\nanswer:");
       scanf("%d",&answer);
      
         
      }while(answer==0);

   if(answer==0)
      {
          printf("你答对的题数为:%d\n你打错的题数为:%d\n",r,f);  
 }
}
搜索更多相关主题的帖子: include 指导 如何 
2013-05-28 15:42
ydown
Rank: 2
等 级:论坛游民
帖 子:31
专家分:92
注 册:2013-5-27
收藏
得分:15 
sum未赋值.
k的初值为0,不能作为除数!
程序代码:
#include<iostream>
#include <ctime>
using namespace std;
void main()
{
    srand((int)time(NULL));
    int i,j,k,shuru,r,f,answer;

    r=0;
    f=0;
    do{
        i=rand()%100;
        j=rand()%100;
        k=rand()%4;
        switch(k)
        {
            case 0:cout<<i<<"+"<<j<<"=";break;
            case 1:cout<<i<<"-"<<j<<"=";break;
            case 2:cout<<i<<"*"<<j<<"=";break;
            case 3:cout<<i<<"/"<<j<<"=";break;
        }
        cin>>shuru;

        if(shuru==i+j||shuru==i*j||shuru==i/j||shuru==i-j)
        {
            cout<<"You are right\n";
            r++;
        }
        else
        {
            cout<<"You are fault\n";
            f++;
        }
        cout<<"Are you contine?If you want to over please click the 0\nanswer:";
        cin>>answer;
    }while(answer==0);
    cout<<"你答对的题数为:"<<r<<endl;
    cout<<"你打错的题数为:"<<f<<endl;
}

LZ将C++输入输出cout和cin替换成C的scanf和printf.
#include用你之前的.


[ 本帖最后由 ydown 于 2013-5-28 17:09 编辑 ]
2013-05-28 16:15
约束小朋友
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-5-28
收藏
得分:0 
回复 2楼 ydown
感谢之极
终于知道自己错在哪里了
2013-05-28 20:21
约束小朋友
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-5-28
收藏
得分:0 
回复 2楼 ydown
我按照你之前说的进行修改调整了
可是很奇怪的是,当我按下继续的指令之后出来的算式跟之前的算式是一模一样的
我想每次我按下继续指令时它出来的算式是不一样的
要怎么改才能达到这个要求呢?

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
    srand((int)time(NULL));
   int i,j,shuru,r,f,answer;
   i=rand()%100;
   j=rand()%100;
   r=0;
   f=0;
   
  
   do{
       {
       if(i%3==0)
          printf("%d+%d=",i,j);
      else if(i%3==1)
          printf("%d*%d=",i,j);
      else if(i%3==2)
          printf("%d/%d=",i,j);
      else
          printf("%d-%d=",i,j);
   }
   scanf("%d",&shuru);
  
   if(shuru==i+j||shuru==i*j||shuru==i/j||shuru==i-j)
      {
       printf("You are right\n");
       r++;
   }
   else  
      {
       printf("You are fault\n");
       f++;
   }
       printf("Are you contine?If you want to over please click the 0\nanswer:");
       scanf("%d",&answer);
      
         
      }while(answer!=0);

   if(answer==0)
      {
          printf("你答对的题数为:%d\n你打错的题数为:%d\n",r,f);  
 }
}
2013-05-28 20:42
ydown
Rank: 2
等 级:论坛游民
帖 子:31
专家分:92
注 册:2013-5-27
收藏
得分:5 
把随机的,放入do循环里,让i,j变化。
2013-05-28 20:50
约束小朋友
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-5-28
收藏
得分:0 
回复 5楼 ydown
有点不懂的是
最后统计题数对错的那个运行出来的结果不对
那要怎么改
2013-05-28 21:04
约束小朋友
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-5-28
收藏
得分:0 
回复 5楼 ydown
所有问题都解决了
真心感谢你
2013-05-28 21:18
ydown
Rank: 2
等 级:论坛游民
帖 子:31
专家分:92
注 册:2013-5-27
收藏
得分:0 
你的算法有很严重的问题,上班的时候没仔细看你的判断部分,刚刚检查自己写的就发现了,明天我去改改,你自己也去检查下,发现问题才能更好解决问题。需要添加k的状态,要不然只要算i+j,系统就会判正确。

[ 本帖最后由 ydown 于 2013-5-28 21:37 编辑 ]
2013-05-28 21:32
ydown
Rank: 2
等 级:论坛游民
帖 子:31
专家分:92
注 册:2013-5-27
收藏
得分:0 
程序代码:
#include<iostream>
#include <ctime>
using namespace std;
void main()
{
    srand((int)time(NULL));
    int i,j,k,shuru,r,f,answer;

    r=0;
    f=0;
    do{
        i=rand()%100;
        j=rand()%100;
        k=rand()%4;
        switch(k)
        {
            case 0:cout<<i<<"+"<<j<<"=";break;
            case 1:cout<<i<<"-"<<j<<"=";break;
            case 2:cout<<i<<"*"<<j<<"=";break;
            case 3:cout<<i<<"/"<<j<<"=";break;
        }
        cin>>shuru;

        if((k==0 && shuru==i+j)||(k==1 && shuru==i-j)||(k==2 && shuru==i*j)||(k==3 && shuru==i/j))   //判断正确算法修改处.

        //之前这里的算法有严重的问题,无论题目是i*j,还是i-j,只要算对i+j系统也会判断正确的.现在已经修正并且调试无误了.

        {
            cout<<"You are right\n";
            r++;
        }
        else
        {
            cout<<"You are fault\n";
            f++;
        }
        cout<<"Are you contine?If you want to over please click the 0\nanswer:";
        cin>>answer;
    }while(answer==0);
    cout<<"你答对的题数为:"<<r<<endl;
    cout<<"你打错的题数为:"<<f<<endl;
}
2013-05-28 22:13
约束小朋友
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-5-28
收藏
得分:0 
回复 9楼 ydown
为什么判断哪里要加上K的值呢??我不懂
k的作用又是什么?
我都快抓狂了,写这个写了好几天了
我把程序现在是这样的
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
    srand((int)time(NULL));
   int i,j,shuru,r,f,answer;
   r=0;
   f=0;
   do{
   i=rand()%100;
   j=rand()%100;
   
       {
       if(i%3==0)
          printf("%d+%d=",i,j);
      else if(i%3==1)
          printf("%d*%d=",i,j);
      else if(i%3==2)
          printf("%d/%d=",i,j);
      else
          printf("%d-%d=",i,j);
   }
   scanf("%d",&shuru);
  
   if(shuru==i+j||shuru==i*j||shuru==i/j||shuru==i-j)
      {
       printf("You are right\n");
       r++;
   }
   else  
      {
       printf("You are fault\n");
       f++;
   }
       printf("Are you contine?If you want to over please click the 0\nanswer:");
       scanf("%d",&answer);
      
         
      }while(answer!=0);

   if(answer==0)
      {
          printf("你答对的题数为:%d\n你打错的题数为:%d\n",r,f);  
 }
}
除了除法运算时有点问题,其他的都还可以
除法运算时,如果输入了小数点,它就像中了病毒一样
不停地运行

[ 本帖最后由 约束小朋友 于 2013-5-28 22:38 编辑 ]
2013-05-28 22:22
快速回复:求指导!!求指导!!
数据加载中...
 
   



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

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