| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 578 人关注过本帖
标题:随机运算,怎么考虑当除法运算的时候b不等于0的情况
只看楼主 加入收藏
jjy123456
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-6-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
随机运算,怎么考虑当除法运算的时候b不等于0的情况
#include<stdio.h>
#include<stdlib.h> //rand()
#include <time.h> //

int main()
{
   
    time_t t;
 
    int randint,flag=1;
    float x;
    double result,p;
    int optr,a,b,c=0,i=1;
    char array[4]={'+','-','*','/'};

    srand( time(&t));
    printf("10以内的四则运算,提示:若答案有小数,请保留小数点后两位");

    while(flag==1)
    {
        randint = rand();
           a=randint%10;
        randint = rand();
         b=randint%10;

        randint = rand();
        randint=randint%4;
        optr=array[randint];

        printf("\n第%d题 : %d %c %d = ", i,a,optr,b);
        scanf("%f",&x);

        switch(optr)        
        {
         case '+':
            result=a+b;
            break;

        case '-':
            result=a-b;
            break;

        case '*':
            result=a*b;
            break;

        case '/':
            if(b==0)
            {
                while(b!=0)
                 b=randint%10;
            }
            result=(double)a/b;
            break;

        }

        if(result==x)
        {
            printf("正确!");
            c++;
            printf("\n若继续请输入1,结束请输入0:");
            scanf("%d",&flag);

            while(flag!=0&&flag!=1)
            {               
                printf("\n你的输入有误,请重新输入:");
                scanf("%d",&flag);
            }
        }
        else
        {
            printf("结果错误,答案为: %.2f ",result);
            printf("\n若继续请输入1,结束请输入0:");
            scanf("%d",&flag);
            while(flag!=0&&flag!=1)
            {               
                printf("你的输入有误,请重新输入:");
                scanf("%d",&flag);
            }
        }
        i++;
    }
    //统计结果
    p=((float)c/(i-1))*100;       //正确率
    printf("\n\n总共%d道题,答对%d题,正确率为%%%.2f\n",i-1,c,p);
    return 0;
}
搜索更多相关主题的帖子: include double result 小数点 
2015-06-07 09:37
你欠我人情
Rank: 2
等 级:论坛游民
威 望:1
帖 子:46
专家分:52
注 册:2015-6-5
收藏
得分:10 
计算加减乘除

我是小白我是小白我是小白我是小白我是小白我是小白
2015-06-07 10:40
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h> //rand()
#include <time.h> //
#include <math.h>

int main()
{
    
    time_t t;

    int randint,flag=1; 
    float x;
    float result,p;
    int optr,a,b,c=0,i=1;
    char array[4]={'+','-','*','/'};

    srand( time(&t));
    printf("10以内的四则运算,提示:若答案有小数,请保留小数点后两位");

    while(flag==1)
    {
        randint = rand();//先确定运算符,再去确定运算数字
        randint=randint%4;
        optr=array[randint];
        
        randint = rand();
        a=randint%10;
        do
        {
            randint = rand();
            b = randint % 10;
        }while(optr == '/' && b == 0);//这样就可以避开除数为0的情况
        

        printf("\n第%d题 : %d %c %d = ", i,a,optr,b);
        scanf("%f",&x);

        switch(optr)        
        {
         case '+':
            result=a+b;
            break;

        case '-':
            result=a-b;
            break;

        case '*':
            result=a*b;
            break;

        case '/':
               result = (float) a/b;
            break;
            
        }

        if(fabs(result-x)<0.005 || result == x)//浮点数运算简单用'=='判等是不对的
        {
            printf("正确!");
            c++;
            printf("\n若继续请输入1,结束请输入0:");
            scanf("%d",&flag);

            while(flag!=0&&flag!=1)
            {                
                printf("\n你的输入有误,请重新输入:");
                scanf("%d",&flag);
            }
        }
        else
        {
            printf("结果错误,答案为: %.2f ",result);
            printf("\n若继续请输入1,结束请输入0:");
            scanf("%d",&flag);
            while(flag!=0&&flag!=1)
            {                
                printf("你的输入有误,请重新输入:");
                scanf("%d",&flag);
            }
        }
        i++;
    }
    //统计结果
    p=((float)c/(i-1))*100;       //正确率
    printf("\n\n总共%d道题,答对%d题,正确率为%%%.2f\n",i-1,c,p);
    return 0;
}


[ 本帖最后由 我爱吃青菜 于 2015-6-7 11:12 编辑 ]
2015-06-07 11:09
jjy123456
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-6-7
收藏
得分:0 
回复 3楼 我爱吃青菜
谢谢大神
2015-06-11 18:19
快速回复:随机运算,怎么考虑当除法运算的时候b不等于0的情况
数据加载中...
 
   



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

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