| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1546 人关注过本帖
标题:请各位帮忙 有偿 程序随机产生两位数以内的n(如10)道算术题,要学生回答 ...
只看楼主 加入收藏
冬屿
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-5-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
请各位帮忙 有偿 程序随机产生两位数以内的n(如10)道算术题,要学生回答。
1.程序随机产生两位数以内的n(如10)道算术题,要学生回答。
  2.n道题做完后,程序给出评语:
(1)做对9题以上:优秀;
(2)做对7或8道题:良好;
(3)做对5或6道题:不错;
(4)其他:还要努力。
  3.学生做完一轮后,不用退出,可以进入下一轮。
搜索更多相关主题的帖子: 随机 位数 算术 学生 退出 
2018-05-21 11:39
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 楼主 冬屿
运算符只有+-*/?

穷举是最暴力的美学
2018-05-21 13:34
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:10 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int  main()
{
    srand(time(0));
    printf("输入出题个数,以0结束。\n");
    int n, cj = 0, a, b, c, jg;
    scanf("%d", &n);
    while (n)
    {
        for (int i = 0; i < n; i++)
        {
            a = rand() % 90 + 9;
            b = rand() % 90 + 9;
            c = rand() % 4 + 1;
            switch (c)
            {
            case 1:
                printf("%2d + %2d=", a, b);
                scanf("%d", &jg);
                if (jg == a + b)cj++;
                break;
            case 2:
                printf("%2d - %2d=", a, b);
                scanf("%d", &jg);
                if (jg == a - b)cj++;
                break;
            case 3:
                printf("%2d * %2d=", a, b);
                scanf("%d", &jg);
                if (jg == a * b)cj++;
                break;
            case 4:
                printf("%2d / %2d=", a, b);
                scanf("%d", &jg);
                if (jg == a / b)cj++;
                break;
            }
            printf("\n");
        }
        switch (cj * 100 / n)
        {
        case 90:
        case 100:
            printf("正确率%6.2f%%优秀\n", cj * 100*1.0 / n);
            break;
        case 70:
        case 80:
            printf("正确率%6.2f%%良好\n", cj * 100 *1.0/ n);
            break;
        case 50:
        case 60:
            printf("正确率%6.2f%%不错\n", cj * 100 *1.0/ n);
            break;
        default :
            printf("正确率%6.2f%%还须努力\n", cj * 100*1.0 / n);
            break;
        }
        cj=0;
        printf("输入出题个数,以0结束.\n");
        scanf("%d", &n);
    }
    return 0;
}只能进行加减乘除运算

[此贴子已经被作者于2018-5-21 17:17编辑过]

2018-05-21 16:42
冬屿
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-5-15
收藏
得分:0 
回复 3楼 dzy123
多谢多谢  我一会运行一下
2018-05-21 20:25
冬屿
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-5-15
收藏
得分:0 
回复 2楼 nosnoy
应该是加减乘除吧

[此贴子已经被作者于2018-5-21 20:33编辑过]

2018-05-21 20:26
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:10 
回复 5楼 冬屿
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
double suiji()
{
    int a,b,k;
    double sum;
    a=rand()%100;
    b=rand()%100;
    k=rand()%4;
    printf("%2d",a);
    switch(k)
    {
        case 0:
            printf("+");
            sum=a+b;
            break;
        case 1:
            printf("-");
            sum=a-b;
            break;
        case 2:
            printf("*");
            sum=a*b;
            break;
        case 3:
            while(1)
            {
                if(b==0)
                {
                b=rand()%100;
                }
                else
                break;
            }
            printf("/");
            sum=a*1.0/b;
            a=sum*100+5;
            sum=a/100.0;
            break;
        default:
            break;
    }
    printf("%2d\n",b);
    return sum;
}
void main()
{
    printf("请输入题目数量\n") ;
    srand((unsigned) time(NULL));
    while(1)
    {
        int n;
        scanf("%d",&n);
        double a[n],k=0;
        char m;
        double c;
        for(int i=0;i<n;i++)
        {
            printf("第%2d题",i+1);
            a[i]=suiji();
        }
        printf("请按题号输入每个题目的答案用空格隔开\n");
        for(int i=0;i<n;i++)
        {
            scanf("%lf",&c);
            if(c==a[i])
            k++;
        }
        if(k>(n*8+5)/10)
            printf("优秀");
        else if(k>(n*6+5)/10)
            printf("良好");
        else if(k>(n*4+5)/10)
            printf("不错");
        else
            printf("继续努力");
        k=0;
        for(int i=0;i<n;i++)
            printf("第%d题答案为%.2lf\n",i+1,a[i]);
        printf("输入'N'退出答题;继续答题请输入'Y' ");
        scanf("%c",&m);
        scanf("%c",&m);
        if(m=='N')
        {
            break;
        }
    }   
}
大体和楼上差不多
只是避免被除数为0 的情况

穷举是最暴力的美学
2018-05-21 21:36
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 5楼 冬屿
重复了,忽略这楼

穷举是最暴力的美学
2018-05-21 21:40
冬屿
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-5-15
收藏
得分:0 
回复 3楼 dzy123
运行出来了 可以给个联系方式吗 说好的有偿  不能让你白编写
2018-05-21 23:51
冬屿
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-5-15
收藏
得分:0 
回复 6楼 nosnoy
十分感谢 你可以加一下我的微信  1205558907   标题都说了 有偿的  不会让你白写程序的

[此贴子已经被作者于2018-5-21 23:55编辑过]

2018-05-21 23:53
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
都是学习不用有偿,健壮性还不行,你自己改一下。
2018-05-22 08:57
快速回复:请各位帮忙 有偿 程序随机产生两位数以内的n(如10)道算术题,要学 ...
数据加载中...
 
   



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

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