实验2

 

 

#include<stdio.h>

#include <ctype.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
int a[100],b[100];
int h;
char c[100],sym[5]={'+','-','*','/','!'};
int answer(int i);
void printanswer(int n);
void main()
{
    int o,count;
 int n;
 long k=-10001;
    time_t start,end; 
    int i;
    char r;
       srand((unsigned)time(NULL));
        while(1)
        {
            count=0;
            printf("\t\t\t请输入题数 (0表示退出)");
            n=-1;
            scanf("%d",&n);
   while(1){
    if(n<0){
     fflush(stdin);
     printf("输入有误 请重新输入");
                    scanf("%d",&n);
    }else{break;}
   }
            if(n==0) exit(0);
            start =time(NULL);
            for(i=0;i<n;i++)
            {
            a[i]=rand()%201-100;
            b[i]=rand()%201-100;
            c[i]=sym[rand()%5];
            if(c[i]==sym[4]) {
                while(a[i]<=0 || a[i]>10){
                   a[i]=rand()%10;
                }
                printf("%d!=",a[i]);
    h=a[i];
            }
            else if(a[i]<0&&b[i]<0) printf("(%d)%c(%d)=",a[i],c[i],b[i]);
            else if(a[i]<0&&b[i]>0) printf("(%d)%c%d=",a[i],c[i],b[i]);
            else if(a[i]>0&&b[i]<0) printf("%d%c(%d)=",a[i],c[i],b[i]);
            else printf("%d%c%d=",a[i],c[i],b[i]);
            
            scanf("%d",&k);
   while(1){
    if(k==-10001){
     fflush(stdin);
     printf("输入有误 请重新输入 ");
                    scanf("%d",&k);
    }else{break;}
   }
            if(k==answer(i)) {
                printf("正确!\n");
    k=-10001;
                count++;
            }
            else {
    printf("输入有误 请重新输入%d\n",answer(i));
    k=-10001;
   }
            }
            end =time(NULL);
            printf("恭喜你对了%d题,一共有%d题,",count,n-count);
            printf("你一共花了%d秒\n",end-start);  
        }
}
int answer(int i)
{
    long o;
        if(c[i]==sym[0]) o=a[i]+b[i];
        if(c[i]==sym[1]) o=a[i]-b[i];
        if(c[i]==sym[2]) o=a[i]*b[i];
        if(c[i]==sym[3]) o=a[i]/b[i];
        if(c[i]==sym[4]){
          o=1;
            for(i=1;i<=h;i++)
                o=o*i;
        }
        return o;
}



 

 

 

 

我们的作业弄得比较简单得弄了四个功能,修改花了半个小时,让程序变得简单。 不过我发现会出现阶乘,小学题目没有阶乘,不过阶乘有些意思就用了,还有按成符号会死循环,经过我稍微修改,按符号不会死循环了,但是它会让接下来的所有题目都答0然后显示错误。

结对同伴:

 

姓名

学号

博客地址

领航员       侯圣燊

201306114402

 

http://home.cnblogs.com/u/sihouzi/

 

驾驶员          刁怿

201306114456

http://home.cnblogs.com/u/diaoyi/

 

 

   大概分工方向

我负责调试跟提供材料大脑 部分功能如阶乘是我完成的

刁怿负责打大部分代码 以及部分功能如判断

然后我们一致研究成果

仍有不足 望助教指出 谢谢!

转载于:https://www.cnblogs.com/sihouzi/p/4410515.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值