注册 登录
编程论坛 C语言论坛

C语言随机出十个加减乘除运算,判断对错给总分

门门哒 发布于 2017-10-14 22:31, 7264 次点击
C语言随机出十个加减乘除运算,判断对错给总分 怎么弄啊
10 回复
#2
吹水佬2017-10-15 06:44
是不是这样:
设计N条加减乘除运算的算式和运算结果
随机取10条算式
显示算式
输入运算结果
比对结果,对则给分累加得分,不对则减分累减得分
显示得分


#3
zbjzbj2017-10-15 08:13
数据用随机数并元整,加减乘除也用随机数1234筛选。检测算式有效再显示。验证结果很简单了,人工算出结果和计算机结果比对一下就可以了
#4
门门哒2017-10-15 10:51
是的
#5
门门哒2017-10-15 12:57
结果错误时还要显示正确答案是多少
这个程序怎么打啊
#6
zbjzbj2017-10-15 16:15
回复 5楼 门门哒
求个答案直接交卷?这有什么意义?
#7
门门哒2017-10-15 17:11
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void fun()
{
    printf("小学生数学测试开始");
    int a,b,c,d,e,t=0,i;
    srand(time(NULL));
    for(i=0; i < 10;i++)
    {
    a=rand()%100+1;
    b=rand()%100+1;
    c=rand()%4+1;
    switch(c)
    {
    case 1:d=a+b;printf("%d+%d=",a,b);break;
    case 2:d=a-b;printf("%d-%d=",a,b);break;
    case 3:d=a*b;printf("%d*%d=",a,b);break;
    case 4:d=a;printf("%d/%d=",a*b,b);break;
    }  
    scanf("%d",&e);
    if(d==e)printf("回答正确!\n");t=t+1;
    else printf("回答错误!答案是: %d\n",d);
}
    printf("总分= %d\n",t*10);
}
int main()
{
    while(1)fun();
    return 0;
}
为什么会显示不匹配
#8
zbjzbj2017-10-16 10:07
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void fun()
{
    printf("小学生数学测试开始");
    int a,b,c,d,e,t=0,i;
    srand(time(NULL));
   
    for(i=0; i < 10;i++)
    {
        a=rand()%100+1;
        b=rand()%100+1;
        c=rand()%4+1;
        switch(c)
        {
            case 1:d=a+b;printf("%d+%d=",a,b);break;
            case 2:d=a-b;printf("%d-%d=",a,b);break;
            case 3:d=a*b;printf("%d*%d=",a,b);break;
            case 4:d=a;printf("%d/%d=",a*b,b);break;
        }  
        scanf("%d",&e);
        if(d==e)
            {
                printf("回答正确!\n");
                t=t+1;
            }
        else
            printf("回答错误!答案是: %d\n",d);
    }
        printf("总分= %d\n",t*10);
}

int main()
{
    while(1)fun();        
    return 0;
}

[此贴子已经被作者于2017-10-16 17:13编辑过]

#9
门门哒2017-10-16 22:47
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void fun()
{
    printf("小学生数学测试开始\n");
    int a,b,c,d,e,t=0,i;
    srand(time(NULL));
    for(i=0; i < 10;i++)
    {
    a=rand()%100+1;
    b=rand()%100+1;
    c=rand()%4+1;
    switch(c)
    {
    case 1:d=a+b;printf("%d+%d=",a,b);break;
    case 2:d=a-b;printf("%d-%d=",a,b);break;
    case 3:d=a*b;printf("%d*%d=",a,b);break;
    case 4:d=a/b;printf("%d/%d=",a,b);break;
    }  
    scanf("%d",&e);
    if(d==e){printf("回答正确!\n");t=t+1;}
    else{ printf("回答错误!答案是: %d\n",d);}
}
    printf("总分= %d\n",t*10);
}
int main()
{
    while(2){fun();}
    return 0;
}
while后面应该也要加花括号吧
另外这是无限循环的,怎么把它改成就只执行一次
#10
zbjzbj2017-10-16 23:38
int main()
{
    fun();
    return 0;
}
只执行一次。
花括号的目的是把多个语句视作一段执行。如果这一段只有一个语句,加不加都一样。
一个分号代表一个语句结束。
#11
门门哒2017-10-18 08:03
谢谢
1