希望可以写一下完整程序

img


主要是其中除法怎么判断计算正确,还有怎么将结果保存到txt中,和判断是否继续的的问题!
希望写一下完整程序!

根据输入结果和除法结果判断是否相同啊。用FILE打开文件写入;继续就是提示用户输入Y继续,N结束

#include<stdio.h>
#include <time.h>
#include <stdlib.h>

typedef struct _calc
{
    int a;
    int b;
    char op;
    int r1;
    float r2;
}calc;

char opr[4] =  {'+','-','*','/'};

int main()
{
    srand(time(NULL));
    calc c[5];
    while(1)
    {
        int ok = 0;
        system("cls");
        printf("计算练习,电脑随机生成5道题目\n");
        printf("20以内加、减、乘、除(四舍五入保留2位小数),请答题:\n");
        for(int i=0;i<5;i++)
        {
            c[i].a = rand()%21;
            c[i].op = opr[rand()%4];
            if(c[i].op == '/')
                c[i].b = rand()%20+1;
            else
                c[i].b = rand()%21;
            printf("%d%c%d=",c[i].a,c[i].op,c[i].b);
            if(c[i].op == '/')
                scanf("%f",&c[i].r2);
            else
                scanf("%d",&c[i].r1);
            getchar();
            switch(c[i].op)
            {
            case '+':
                if(c[i].a + c[i].b == c[i].r1)
                    ok++;
                break;
            case '-':
                if(c[i].a-c[i].b == c[i].r1)
                    ok++;
                break;
            case '*':
                if(c[i].a * c[i].b == c[i].r1)
                    ok++;
                break;
            case '/':
                if((int)(c[i].a * 1.0 / c[i].b *100 + 0.5) == (int)(c[i].r2*100+0.1))
                    ok++;
            }
        }
        printf("正确率为:%d%%\n",ok*100/5);
        FILE *fp = fopen("calc.txt","w");
        if(fp != NULL)
        {
            for(int i=0;i<5;i++)
            {
                if(c[i].op == '/')
                    fprintf(fp,"%d%c%d=%.2f\n",c[i].a,c[i].op,c[i].b,c[i].r2);
                else
                    fprintf(fp,"%d%c%d=%d\n",c[i].a,c[i].op,c[i].b,c[i].r1);
            }
            fclose(fp);
        }
        printf("是否继续,如果是输入Y,否则输入N:\n");
        char res = getchar();
        if(res == 'N')
            break;
    }
    system("pause");
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632