| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1368 人关注过本帖
标题:该程序要实现10以内的加减法,并根据题数出题,同时显示最终成绩
只看楼主 加入收藏
阳艳明
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
该程序要实现10以内的加减法,并根据题数出题,同时显示最终成绩
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
for (;;){
  switch (menu()){
    case '1':test();break;
    case '2':practise();break;
    case '3':exit(0);
    }
  }
}
menu()
{
char c;
do{
  clrscr();
  printf("\n    1.text\n");
  printf("    2.practice\n");
  printf("    3.exit\n");
  printf("\n please  select(1或2或3):");
  c=getche();
  }while(c<'1'||c>'3');
return c;
}
test()
{
int ts,i,m,n,s,r=0;
ts=numsoftest();
randomize();
for (i=1;i<=ts;i++){
  do {
    m=num();n=num();
    }while ((m+n)>9);
  printf("%d,%d,%d",i,m,n);
  scanf("%d",&s);
  if (s==m+n) r++;
  }
printf(“score:%d\n”,100*r/ts);
for(i=1;i<ts;i++)
{do{m=num();n=num()}
while(m-n<0||m-n>9);
printf(“%d,%d,%d”,i,m,n);
scanf(“%d”,&s);
if(s==m-n) r++;}
printf("score:%d\n",100*r/ts);
printf("press  any  key  to  continue");
getch();
}
numsoftest()
{
int n;
clrscr();
do{
  printf("\n please  enter  the title  number(10~20):");
  scanf("%d",&n);
  }while (n<10||n>20);
return n;
}
practise()
{
int ts,i,m,n,s;
ts=numsoftest();
randomize();
for (i=1;i<=ts;i++){
  do {
    m=num();n=num();
    }while ((m+n)>9);
  printf("%d) %d+%d=",i,m,n);
  scanf("%d",&s);
if(s==m-n) right();
else wrong();}
for(i=1;i<ts;i++)
  {do{m=num();n=num();}
while(m-n<0||m-n>9);
printf(“%d,%d,%d”,i,m,n);
scanf(“%d”,&s);
  if (s==m-n) right();
  else wrong();
  }
printf("press  any  key");
getch();
}
num()
{
return random(9);
}
right()
{
printf("right\n");
}
wrong()
{
printf("error\n");
}
能帮帮忙吗,急啊!!!!!!!!!
搜索更多相关主题的帖子: 加减法 出题 
2010-06-24 21:26
zhuxinhai
Rank: 1
等 级:新手上路
帖 子:11
专家分:3
注 册:2010-6-21
收藏
得分:0 
加入    63390142   QQ群   一起学习
加入    63390142   QQ群   一起学习
加入    63390142   QQ群   一起学习
加入    63390142   QQ群   一起学习
2010-06-25 19:53
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:2 
"10以内的加减法,并根据题数出题,同时显示最终成绩"
没看懂楼主的意思

学习c语言痛苦!!但是要坚持~~
2010-06-25 22:04
阳艳明
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-8
收藏
得分:0 
哦,就是假如你需要作12个题,程序运行时就会给你12个题,并会给你显示最终结果,这个程序用的是TC,有点晕人
2010-06-26 09:34
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:5 
虽然不懂,帮你顶起来,期待大神光临

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2010-06-26 10:12
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:13 
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int sum(int a,int b)
{
    return a+b;
}
int sub(int a,int b)
{
    return a-b;
}
int xz(int n)
{
    int i,r=0,g;
    srand((unsigned)time( NULL ));
    for(i=0;i<n;i++)
    {
        int x=rand()%10;
        int y=rand()%10;
        int s=rand()%2;
        switch(s)
        {
            case 0: printf("%d+%d=",x,y);
                    scanf("%d",&g);
                    if(g==sum(x,y))
                        r++;
                    break;
            case 1:if(x-y>=0)
                    {
                        printf("%d-%d=",x,y);
                        scanf("%d",&g);
                        if(g==sub(x,y))
                            r++;
                    }
                    else{
                        printf("%d-%d=",y,x);
                        scanf("%d",&g);
                        if(g==sub(y,x))
                            r++;
                    }break;
        }
    }
    return r;
}
main()
{
    int n,k,b;
    double j;
    for(;;)
    {
        printf("******************************\n");
        printf("        1.做题                  \n");
        printf("    2.退出                \n");
        printf("******************************\n");
        scanf("%d",&k);
        switch(k)
        {
            case 1: printf("请输要做几题:");
                    scanf("%d",&n);
                    b=xz(n);
                    printf("得分:%.2f\n",100.0*b/n);
                    break;
            case 2:exit(0);break;
            default:printf("输入错误!重新选择...\n");
    }
    }
}

LZ看看吧!!!我用的是C-Free 4.1编译器。。。。

学习c语言痛苦!!但是要坚持~~
2010-06-26 11:18
阳艳明
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-8
收藏
得分:0 
谢谢了!
2010-06-29 17:32
starjun14
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:266
专家分:136
注 册:2009-4-26
收藏
得分:0 
厉害
2010-06-29 17:38
小少胖
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-6-6
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int yunsuan(int M,int NUM)
{
    int m=1,n=0,a,b,daan;
    while(1)
    {
        srand(time(0));
        a=rand()%M;
        b=rand()%M;
      switch(1+rand()%2)
      {
        case 1:   //加
        {
            printf("<%d>",m);
            printf("%4d+%4d=",a,b);
            scanf("%d",&daan);
            if(daan==(a+b))
                     n++;
            else
                   printf("Fault!\n");
            m++;
            break;
        }
        default:   //减
        {
            if(a>=b)
            {
                printf("<%d>",m);
                printf("%4d-%4d=",a,b);
                scanf("%d",&daan);
                if(daan==(a-b))
                         n++;
                 else
                        printf("Fault!\n");
                m++;
                break;
            }
            else
            {
                printf("<%d>",m);
                printf("%4d-%4d=",b,a);
                scanf("%d",&daan);
                if(daan==(b-a))
                         n++;
                else
                        printf("Fault!\n");
                m++;
                break;
            }
         }
       }
       if(m == NUM+1)
           break;
     }
  return n;
}

int main()
{
     int M,p;
     float right;
     char o;
     int num;  //题目的个数。
     while(1)
     {
         printf("               欢迎进入小学生四则运算训练营\n\n1.10以内的四则运算\n0.退出\n\n");
         printf("请选择功能号(1/0):");
         scanf("%d",&p);
         getchar();
         if(p==1)
           M=10;
         if(p==0)
           exit(0);
         printf("请选择的是%d以内的四则运算个数:\n",M);
         scanf("%d",&num);
         int temp = yunsuan(M,num);
         right= temp/(num*1.0);
         printf("正确率:%.2f%%",right*100);  //正确率。
         getchar(); //吸收前面的回车键。
         printf("继续吗?(y/n)");
         scanf("%c",&o);
         if(o == 'y' || o == 'Y')
         {
             system("pause");
         }
         else
         {
             break;
         }
     }
     getchar();
     return 0;
}


2013-06-06 21:36
快速回复:该程序要实现10以内的加减法,并根据题数出题,同时显示最终成绩
数据加载中...
 
   



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

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