zoukankan      html  css  js  c++  java
  • 四则运算(可检验)

    题目:二柱子的四则运算

    作业要求1、实现在线答题。

                  2、答题结束后,可以判断对错。

                  3、并将错题的结果保存起来。

    设计思路:我实在是不知道怎么写。。。

    可能是通过IF和循环语句来对四则运算的答案进行判断答案是否正确,但是其中用什么语言,什么函数来实现我是真的不会,我抄都抄不懂。

    首先肯定要生成四则运算 的题目就不用说了。之前的几次都在做这个。

    然后让计算机预先生成答案,但是不显示,存储在链表里,这样方便调用。

    然后能让使用者能在四则运算题中的等于号后输入答案

    等到答案输入完成后,通过程序判断每个对应 题目所输入的答案是否与系统生成的答案相同。

    只要与系统生成的答案一样,就在在这题后输出“对”。不一样就输出“错”,同时将错误的题目加在线答题的答案输出在之前的题目之后。

    程序:(参考了同学的代码)

    #include<stdlib.h>
    #include<stdio.h>
    #include<conio.h>

    void main()
    {
    int a[10],b[10],d[10],c[10],num=0,result,add=0;
    float val;
    char fa[5]={'+','-','*','/'};
    while(1)
    {
    d[num]=abs(rand())%4;

    while(1)
    {
    c[num]=-1;
    a[num]=abs(rand())%100;
    b[num]=abs(rand())%100;
    if(d[num]==0) c[num]=a[num]+b[num];
    else if(d[num]==1) c[num]=a[num]-b[num];
    else if(d[num]==2) c[num]=a[num]*b[num];
    else if(d[num]==3)
    {
    if(b[num]>0)val=1.0*a[num]/b[num];
    }
    if(d[num]<=2)
    {
    if(c[num]>=0 && c[num]<=100) break;
    }
    else
    {
    if(a[num]==int(val)*b[num])
    {c[num]=val; break;}
    }
    }
    num++;
    if(num==10) break;
    }
    /* 回答 */
    num=0;
    while(1)
    {
    printf("%d %c %d= ",a[num],fa[d[num]],b[num]);
    scanf("%d",&result);
    if(result==c[num])
    {
    printf("回答正确! ");
    add+=10;
    }
    else
    printf("错误,正确答案: %d ",c[num]);
    num++;
    if(num==10) break;
    }
    printf(" 得分:%d ",add);
    getch();
    }

    遇到的问题:

    对于生成的10道题,虽然实现了在线答题,但是再次运行时题目出现重复。待解决

    运行结果:

  • 相关阅读:
    一条查询SQl是怎样执行的
    MySQL45讲笔记-事务隔离级别,为什么你改了数据我看不见
    了解一下IO控制器与控制方式
    进程的同步与互斥
    预防死锁,检测死锁,避免死锁,解除死锁....
    初识Git
    剑指offer-查找数组中重复的数字
    常见的几种进程调度算法
    操作系统-进程的状态以及转换
    中断、异常、系统调用
  • 原文地址:https://www.cnblogs.com/w-t-c/p/9866351.html
Copyright © 2011-2022 走看看