四则运算作业
博客园班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11377
需求分析:
1.能自动生成四则运算题目
2.除了整数外,还要支持真分数的四则运算
3.判断运算结果对错
3170701219
include<stdio.h> include<math.h> include<windows.h> int right=0;//答对的正确的题目个数 int wrong=0;//答错的题目个数 void add() //整数的加法 { int a,b,c; a=rand()%100; //随机生成 b=rand()%100; printf("请回答:\n\t\t %d + %d = ",a,b); scanf("%d",&c); if(a+b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } void Add() //真分数的加法 { int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0; int a,b,c; zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu1_m<zhenfenshu1_z) { zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; } zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu2_m<zhenfenshu2_z) { zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; } printf("请回答:\n\t\t %d / %d + %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m); scanf("%d",&c); a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m; if(a+b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } void minu() //整数减法 { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:\n\t\t %d - %d = ",a,b); scanf("%d",&c); if(a-b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } void Minu() //真分数的减法 { int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0; int a,b,c; zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu1_m<zhenfenshu1_z) { zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; } zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu2_m<zhenfenshu2_z) { zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; } printf("请回答:\n\t\t %d / %d - %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m); scanf("%d",&c); a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m; if(a-b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } void mul() //整数乘法 { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:\n\t\t %d * %d = ",a,b); scanf("%d",&c); if(a*b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } void Mul() //真分数的乘法 { int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0; int a,b,c; zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu1_m<zhenfenshu1_z) { zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; } zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu2_m<zhenfenshu2_z) { zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; } printf("请回答:\n\t\t %d / %d * %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m); a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m; scanf("%d",&c); if(a*b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } void di() //整数除法 { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:\n\t\t %d / %d = ",a,b); scanf("%d",&c); if(a/b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } void Di() //真分数的除法 { int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0; int a,b,c; zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu1_m<zhenfenshu1_z) { zhenfenshu1_m=0+rand()%100; zhenfenshu1_z=0+rand()%100; } zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; //判断产生的真分数正确性 while(zhenfenshu2_m<zhenfenshu2_z) { zhenfenshu2_m=0+rand()%100; zhenfenshu2_z=0+rand()%100; } printf("请回答:\n\t\t %d / %d ÷ %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m); scanf("%d",&c); a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m; if(a/b==c) { printf("回答正确!\n"); right++; } else { printf("回答错误!\n"); wrong++; } } int main(void) { int choise,bot; srand(time(NULL)); //随机数每次循环都不一样 int con=0; printf("\n\t\t\t欢迎进入小学简易四则运算\n\n"); while(1) { if(con==0) { printf("请选择:\n"); printf("\t 整数计算(请输入1)or真分数计算(请输入2)\n"); scanf("%d",&choise); switch(choise) { case 1: printf("\t\t\t 加法运算(请输入1)\n"); printf("\t\t\t 减法运算(请输入2)\n"); printf("\t\t\t 乘法运算(请输入3)\n"); printf("\t\t\t 除法运算(请输入4)\n"); printf("\t\t\t 退出运算(请输入5)\n"); scanf("%d", &bot); switch(bot) { case 1: add(); break; case 2: minu(); break; case 3: mul(); break; case 4: di(); break; case 5: return; } break; case 2: printf("\t\t\t 加法运算(请输入1)\n"); printf("\t\t\t 减法运算(请输入2)\n"); printf("\t\t\t 乘法运算(请输入3)\n"); printf("\t\t\t 除法运算(请输入4)\n"); printf("\t\t\t 退出运算(请输入5)\n"); scanf("%d", &bot); switch(bot) { case 1: Add(); break; case 2: Minu(); break; case 3: Mul(); break; case 4: Di(); break; case 5: return; } break; } } if(con==1) { switch(choise) { case 1: printf("\t\t\t 加法运算(请输入1)\n"); printf("\t\t\t 减法运算(请输入2)\n"); printf("\t\t\t 乘法运算(请输入3)\n"); printf("\t\t\t 除法运算(请输入4)\n"); printf("\t\t\t 退出运算(请输入5)\n"); scanf("%d", &bot); switch(bot) { case 1: add(); break; case 2: minu(); break; case 3: mul(); break; case 4: di(); break; case 5: return; } break; case 2: switch(bot) { case 1: Add(); break; case 2: Minu(); break; case 3: Mul(); break; case 4: Di(); break; case 5: return; } break; } } printf("\n\t\t\t继续运算?(请输入1)\n"); printf("\n\t\t\t重新选择?(请输入2)\n"); printf("\n\t\t\t退出运算?(请输入3)\n"); scanf("%d",&con); if(con==1) con=1; else if(con==2) con=0; else if(con==3) break; else printf("抱歉!,你输入的指令有误!请重新输入!\n"); } fflush(stdin); //清空输入缓冲区 printf("您总共完成了 %d 道题\n正确 %d 道\n错误 %d 道\n",right+wrong,right,wrong); }


二、个人小结

本次实验的内容虽然是简单的四则运算的实现,但是由于很长一段时间没有进行过代码的编写,在实验的过程中还是遇到了不少的困难,希望以后能够多学习,抓。紧时间
浙公网安备 33010602011771号