• 实验二


    #include <stdio.h>
    #include<time.h>
    #include<stdlib.h>
    int count=0;
    void Ti(int n,int a[]);
    int main()
    {
        int n;
        int a[100];
        printf("请输入题目的个数:");
        scanf("%d",&n);
        Ti(n,a);
        printf("
    回答正确的个数为:%d
    错误的个数为:%d
    ",count,n-count);
        return 0;
    }
    void Ti(int n,int a[])
    {
        int l;
        int p;
        int i,j,h,hh,k,g;
        int f;
        int b[100];
        float x,y,c[100],d[100];
        for(p=0;p<n;p++)
        {
            srand(time(NULL));
            i=(int)rand()%10;
            j=(int)rand()%10;
            h=(int)rand()%10;
            hh=(int)rand()%10;
            g=(int)rand()%3;
            f=((int)rand()%100)-100;
            k=(int)rand()%6;
            switch(k)
            {
            case 0:
                printf("%d+%d=
    ",i,j);
                printf("请作答:");
                scanf("%d",&b[p]);
                a[p]=i+j;
                if(a[p]==b[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%d
    ",a[p]);
                }
                break;
            case 1:
                printf("%d-%d=
    ",i,j);
                printf("请作答:");
                scanf("%d",&b[p]);
                a[p]=i-j;
                if(a[p]==b[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%d
    ",a[p]);
                }
                break;
            case 2:
                printf("%d*%d=
    ",i,j);
                printf("请作答:");
                scanf("%d",&b[p]);
                a[p]=i*j;    
                if(a[p]==b[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%d
    ",a[p]);
                }
                break;
            case 3:
                if(j==0)
                {
                    p--;
                    break;
                }
                else{
                    x=(float)i;
                    y=(float)j;
                    printf("%d/%d=
    ",i,j);
                    printf("请作答:");
                    scanf("%f",&d[p]);
                    c[p]=x/y;
                    if(c[p]==d[p])
                    {
                        printf("回答正确!
    ");
                        count++;
                    }
                    else
                    {
                        printf("回答错误!
    ");
                        printf("正确答案为:%.2f
    ",c[p]);
                    }
                    break;
                }
            case 4:
                printf("%d!=
    ",i);
                printf("请作答:");
                scanf("%d",&b[p]);
                if(i==0)
                    a[p]=1;
                else
                {
                    a[p]=1;
                    for(l=1;l<=i;l++)
                        a[p]=a[p]*l;
                }
                if(a[p]==b[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%d
    ",a[p]);
                }
                break;
            case 5:
                if(j==0)
                {
                    p--;
                    break;
                }
                else
                {
                    x=(float)i;
                    y=(float)j;
                       switch(g){
                    case 0:
                        printf("(%d/%d+%d)*%d=
    ",i,j,h,hh);
                        printf("请作答:");
                        scanf("%f",&d[p]);
                        c[p]=(x/y+h)*hh;
                        break;
                    case 1:
                        printf("(%d+%d*%d)=
    ",h,i,j);
                        printf("请作答:");
                        scanf("%f",&d[p]);
                        c[p]=h+x*y;
                        break;
                    case 2:
                        printf("%d*(%d)=
    ",i,f);
                        printf("请作答:");
                        scanf("%f",&d[p]);
                        c[p]=x*(f);
                        break;
                    }
                    if(c[p]==d[p])
                    {
                        printf("回答正确!
    ");
                        count++;
                    }
                    else
                    {
                        printf("回答错误!
    ");
                        printf("正确答案为:%.2f
    ",c[p]);
                    }
                    break;
                }
            }        
        }
    }




    本程序在VC++6.0开发环境下调试的。
    1. 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3。
    2. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8。
    3. 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数。
    4. 程序可以出单个整数阶乘的题目:如:4!=24。
    结对同伴的学号姓名:201306114457,叶鹏   博客地址:http://www.cnblogs.com/yeyepengpeng/ 
    我做了:完成程序基本功能与1和4功能,负责敲打代码,测试和修改。
    同伴做了:上述2和3的功能,搜集查阅资料,负责指正修改程序,提出修改和改进方案。
    总结:通过这次实验使我复习了以前我学到的知识,并且使我更加掌握以前的知识。实验中我感觉到两个人一起结对做程序是一种快乐,同时也弥补了我一个人独自写程序的那种粗心大意,同伴的提醒使我更加的细心与谨慎,通过实验我更加的明白团队的重要性,不仅能提高我的个人能力,同时也能使他人也得到能力的提升。

    #include <stdio.h>
    #include<time.h>
    #include<stdlib.h>
    int count=0;
    void Ti(int a[]);
    void JX(int a[]);
    void KH(int a[]);
    int main()
    {
        int a[100];
        int m;
        do
        {
            printf("      --------------
    ");
            printf("     1.简单的运算.
    ");
            printf("     2.含括号的运算.
    ");
            printf("     3.阶乘的运算.
    ");
            printf("     0.退出.
    ");
            printf("      --------------
    ");
            printf("请选择:");
            scanf("%d",&m);
            switch(m)
            {
            case 1:    
                Ti(a);
                break;
            case 2:
                KH(a);
                break;
            case 3:
                JX(a);
                break;        
            }
        }while(m!=0);
        return 0;
    }
    void Ti(int a[])
    {
        int n,p;
        int i,j,k;
        int b[100];
        float x,y,c[100],d[100];
        count=0;
        printf("请输入题目的个数:");
        scanf("%d",&n);
        for(p=0;p<n;p++)
        {
            srand(time(NULL));
            i=(int)rand()%10;
            j=(int)rand()%10;
            k=(int)rand()%4;
            switch(k)
            {
            case 0:
                printf("%d+%d=
    ",i,j);
                printf("请作答:");
                scanf("%d",&b[p]);
                a[p]=i+j;
                if(a[p]==b[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%d
    ",a[p]);
                }
                break;
            case 1:
                printf("%d-%d=
    ",i,j);
                printf("请作答:");
                scanf("%d",&b[p]);
                a[p]=i-j;
                if(a[p]==b[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%d
    ",a[p]);
                }
                break;
            case 2:
                printf("%d*%d=
    ",i,j);
                printf("请作答:");
                scanf("%d",&b[p]);
                a[p]=i*j;    
                if(a[p]==b[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%d
    ",a[p]);
                }
                break;
            case 3:
                if(j==0)
                {
                    p--;
                    break;
                }
                else
                {
                    x=(float)i;
                    y=(float)j;
                    printf("%d/%d=
    ",i,j);
                    printf("请作答:");
                    scanf("%f",&d[p]);
                    c[p]=x/y;
                    if(c[p]==d[p])
                    {
                        printf("回答正确!
    ");
                        count++;
                    }
                    else
                    {
                        printf("回答错误!
    ");
                        printf("正确答案为:%.2f
    ",c[p]);
                    }
                    break;            
                }        
            }        
        }
        printf("
    回答正确的个数为:%d
    错误的个数为:%d
    ",count,n-count);    
    }
    void KH(int a[])
    {
        int n;
        int i,j,h,hh,g;
        float x,y,c[100],d[100];
        int p;
        int f;
        count=0;
        printf("请输入题目的个数:");
        scanf("%d",&n);
        for(p=0;p<n;p++)
        {
            srand(time(NULL));
            i=(int)rand()%10;
            j=(int)rand()%10;
            h=(int)rand()%10;
            hh=(int)rand()%10;
            g=(int)rand()%3;
            f=((int)rand()%100)-100;
            if(j==0)
            {
                p--;
                continue;
            }
            else
            {
                x=(float)i;
                y=(float)j;
                switch(g)
                {
                case 0:
                    printf("(%d/%d+%d)*%d=
    ",i,j,h,hh);
                    printf("请作答:");
                    scanf("%f",&d[p]);
                    c[p]=(x/y+h)*hh;
                    break;
                case 1:
                    printf("(%d+%d*%d)=
    ",h,i,j);
                    printf("请作答:");
                    scanf("%f",&d[p]);
                    c[p]=h+x*y;
                    break;
                case 2:
                    printf("%d*(%d)=
    ",i,f);
                    printf("请作答:");
                    scanf("%f",&d[p]);
                    c[p]=x*(f);
                    break;
                }
                if(c[p]==d[p])
                {
                    printf("回答正确!
    ");
                    count++;
                }
                else
                {
                    printf("回答错误!
    ");
                    printf("正确答案为:%.2f
    ",c[p]);
                }
                
            }
            
        }
        printf("
    回答正确的个数为:%d
    错误的个数为:%d
    ",count,n-count);
    }
    void JX(int a[])
    {
        int b[100];
        int p;
        int l;
        int i;
        int n;
        count=0;
        printf("请输入题目的个数:");
        scanf("%d",&n);
        for(p=0;p<n;p++)
        {
            srand(time(NULL));
            i=(int)rand()%10;
            printf("%d!=
    ",i);
            printf("请作答:");
            scanf("%d",&b[p]);
            if(i==0)
                a[p]=1;
            else
            {
                a[p]=1;
                for(l=1;l<=i;l++)
                    a[p]=a[p]*l;
            }
            if(a[p]==b[p])
            {
                printf("回答正确!
    ");
                count++;
            }
            else
            {
                printf("回答错误!
    ");
                printf("正确答案为:%d
    ",a[p]);
            }
        }
        printf("
    回答正确的个数为:%d
    错误的个数为:%d
    ",count,n-count);    
    }
    
    

     
  • 相关阅读:
    数组中的每一个对象执行一次方法:makeObjectsPerformSelector
    $.each() each
    JQ js选择节点操作
    Sublime Text 3 快捷键
    TotoiseSVN的基本使用方法
    Hbuilder快捷键
    获取网页内容区域各种高/宽汇总
    TP操作
    xhr接收php://output的二进制文件,并转换成excel表格
    Go语言的%d,%p,%v等占位符的使用
  • 原文地址:https://www.cnblogs.com/chenqiuliang/p/4402117.html
Copyright © 2020-2023  润新知