#include<stdio.h> int sum = 0; int sum1 = 0; int sum2 = 0; int sum3 = 0; struct NUM //一个运算符号整数存储 { int one; int two; int three; }stu[400]; struct NUM1 // 一个运算符号真分数存储 { int first;//第一个数的分子 int first1;//第一个数的分母 int second; int second1; int result; int result1; }stu1[400]; struct NUM2 //两个运算符号的存储 { int one; int two; int three; int result; }stu2[400]; struct NUM3 //带括号的四则运算 { int one; int two; int three; int result; }stu3[400]; int show(); void show1(); int integer();//整数 int fraction();//分数 int complex();//多符号数 int braces();//带括号的 int error(); void main() { int a=1,b ; while (a == 1) { b = show(); switch (b) { case 1: a = integer(); break; case 2: a = fraction(); break; case 3: a = complex(); break; case 4: a = braces(); break; case 5: a =error(); break; default:a =0; break; } } show1(); } int show() { int a; printf("=========目录==========\n"); printf("1.整数运算\n"); printf("2.真分数运算\n"); printf("3.多运算符的运算\n"); printf("4.带括号的四则运算\n"); printf("5.错题记录\n"); printf("0.结束运算\n"); printf("请输入你想进行运算的序号\n"); scanf_s("%d", &a); return a; } void show1() { printf("谢谢使用"); } int integer()//整数 { int a, b, c, m; int s[10]; for (int i = 0; i < 10; i++) { a = stu[sum].one = rand() % 10 + 1; b = stu[sum].two = rand() % 10 + 1; int n = rand() % 4 + 1; switch (n) { case 1: stu[sum].three = a + b; printf("%d+%d=\t", a, b); break; case 2: stu[sum].three = a - b; printf("%d-%d=\t", a, b); break; case 3: stu[sum].three = a*b; printf("%d*%d=\t", a, b); break; case 4: stu[sum].three = a /b; printf("%d/%d=\t", a, b); break; } sum = sum + 1; } printf("请输入上面十题的答案\n"); for (int i = 0; i < 10; i++) { printf("%d.", i + 1); scanf_s("%d", &s[i]); } for (int i = 0; i < 10; i++) { if (s[i] == stu[sum - 9 + i].three) { printf("√"); } else { printf("第%d题错误,正确答案是%d ", i + 1, stu[sum-9+i].three); if (i == 9) { printf("\n"); } } } printf("继续请按1,结束请按任意键\n"); scanf_s("%d", &m); if (m == 1) return 1; else return 0; } int fraction()//分数 { int a, b, c, d, m; int s[20]; for (int i = 0; i < 10; i++) { a = stu1[sum1].first = rand() % 10 + 1; b = stu1[sum1].first1 = rand() % 10 + a; c = stu1[sum1].second = rand() % 10 + 1; d = stu1[sum1].second1 = rand() % 10 + c; int n= rand() % 4 + 1; switch (n) { case 1: stu1[sum1].result = a*d + c*b; stu1[sum1].result1 = b*d; printf("%d/%d+%d/%d=\t", a, b,c,d); break; case 2: stu1[sum1].result = a*d - c*b; stu1[sum1].result1 = b*d; printf("%d/%d-%d/%d=\t", a, b, c, d); break; case 3: stu1[sum1].result = a*c; stu1[sum1].result1 = b*d; printf("%d/%d*%d/%d=\t", a, b, c, d); break; case 4: stu1[sum1].result = a*d; stu1[sum1].result1 = b*c; printf("%d/%d/%d/%d=\t", a, b, c, d); break; } sum = sum + 1; } printf("请输入上面十题的答案\n"); for (int i = 0; i < 10; i++) { printf("%d.分子", i + 1); scanf_s("%d", &s[i]); printf("%d.分母", i + 1); scanf_s("%d", &s[i+10]); } for (int i = 0; i < 10; i++) { if (s[i] == stu1[sum1 - 9 + i].result&&s[i+10] == stu1[sum1 - 9 + i].result1) { printf("√"); } else { printf("第%d题错误,正确答案是%d/%d ", i + 1, stu1[sum1 - 9 + i].result, stu1[sum1 - 9 + i].result1); if (i == 9) { printf("\n"); } } } printf("继续请按1,结束请按任意键\n"); scanf_s("%d", &m); if (m == 1) return 1; else return 0; } int complex()//多符号数 { int a, b, c, m; int s[10]; for (int i = 0; i < 10; i++) { a = stu2[sum2].one = rand() % 10 + 1; b = stu2[sum2].two = rand() % 10 + 1; c = stu2[sum2].three = rand() % 10 + 1; int n = rand() % 4 + 1; switch (n) { case 1: stu2[sum2].result = (a*b)+ c; printf("%d*%d+%d=\t", a, b, c); break; case 2: stu2[sum2].result = a + (b * c); printf("%d+%d*%d=\t", a, b, c); break; case 3: stu2[sum2].result = (a*b) - c; printf("%d*%d-%d=\t", a, b, c); break; case 4: stu2[sum2].result = a - (b * c); printf("%d-%d*%d=\t", a, b, c); break; } sum = sum + 1; } printf("请输入上面十题的答案\n"); for (int i = 0; i < 10; i++) { printf("%d.", i + 1); scanf_s("%d", &s[i]); } for (int i = 0; i < 10; i++) { if (s[i] == stu2[sum2-9+i].result) { printf("√"); } else { printf("第%d题错误,正确答案是%d ", i + 1, stu2[i].result); if (i == 9) { printf("\n"); } } } printf("继续请按1,结束请按任意键\n"); scanf_s("%d", &m); if (m == 1) return 1; else return 0; } int braces()//带括号的 { int a, b, c, m; int s[10]; for (int i = 0; i < 10; i++) { a = stu3[sum3].one = rand() % 10 + 1; b = stu3[sum3].two = rand() % 10 + 1; c = stu3[sum3].three = rand() % 10 + 1; int n = rand() % 4 + 1; switch (n) { case 1: stu3[sum3].result = a*(b + c); printf("%d*(%d+%d)=\t", a, b, c); break; case 2: stu3[sum3].result = (a - b) * c; printf("(%d-%d)*%d=\t", a, b, c); break; case 3: stu3[sum3].result = a/(b - c); printf("%d/(%d-%d)=\t", a, b, c); break; case 4: stu3[sum3].result = (a + b )/ c; printf("(%d-%d)/%d=\t", a, b, c); break; } sum = sum + 1; } printf("请输入上面十题的答案\n"); for (int i = 0; i < 10; i++) { printf("%d.", i + 1); scanf_s("%d", &s[i]); } for (int i = 0; i < 10; i++) { if (s[i] == stu3[sum3 - 9 + i].result) { printf("√"); } else { printf("第%d题错误,正确答案是%d ", i + 1, stu2[i].result); if (i == 9) { printf("\n"); } } } printf("继续请按1,结束请按任意键\n"); scanf_s("%d", &m); if (m == 1) return 1; else return 0; }
转载于:https://www.cnblogs.com/shenpfei/p/5282212.html