第一周代码(四则运算)

对于这个程序,我只能写出整数,分数的运行和判断对错,支持多个运算符。但是对于累计分数,倒计时,支持括号,用户界面由用户选择用中文英文或日文的问题还不能解决。
希望大神赐教,完善我的程序!!!

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <conio.h>//控制台输入输出
#include <math.h>

int cnt1, cnt2;
int gcd(int a, int b)//最大公约数
{
if (b == 0)
return a;
return gcd(b, a % b);
}

int main(int argc, char const *argv[])//* argv[ ]: 字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一个参数

argv[0]:指向程序的全路径名
{
int n = 0;
for (int i = 0; i < strlen(argv[2]); i++) {
n = n * 10 + (argv[2][i] - ‘0‘);
}
printf("%d\n", n);
srand(time(NULL));
char input[100], ans1[100], ans2[100];
while (n--) {
memset(input, 0, sizeof(input));//memset函数用来对一段内存空间全部设置为某个字符,常用于内存空间初始化。
memset(ans1, 0, sizeof(ans1));
memset(ans2, 0, sizeof(ans2));
fflush(stdin); //清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件
printf("输入q退出,按其他任意键继续\n");
char ch = getch();
if (ch == ‘q‘) {
break;
}
int a, b, c, d, op;
a = rand() % 100;
while (1) {
b = rand() % 100;
if (b != 0) {
break;
}
}
c = rand() % 100;
while (1) {
d = rand() % 100;
if (d != 0) {
break;
}
}
op = rand() % 4;

int tmp = abs(gcd(a, b));//abs描述 返回数字的绝对值
a /= tmp;
b /= tmp;

tmp = abs(gcd(c, d));
c /= tmp;
d /= tmp;

printf("%d", a);
if (b != 1) {
printf("/%d", b);
}
if (op == 0) printf(" + ");//op是一种二目运算符的简便用法
else if (op == 1) printf(" - ");
else if (op == 2) printf(" * ");
else printf(" / ");

printf("%d", c);
if (d != 1) {
printf("/%d", d);
}
printf(" = ");

int m, n;
if (op == 0){
m = a * d + b * c;
n = b * d;
}
else if (op == 1) {
m = a * d - b * c;
n = b * d;
}
else if (op == 2) {
m = a * c;
n = b * d;
}
else {
m = a * d;
n = b * c;
}

tmp = abs(gcd(m, n));
m /= tmp;
n /= tmp;

sprintf(ans1, "%d", m);
if (n != 1) {
sprintf(ans2, "/%d", n);
}
strcat(ans1, ans2);

gets(input);
puts(ans1);
if (strcmp(ans1, input) == 0) {
printf("right\n");
cnt1++;
}
else {
printf("wrong\n");
cnt2++;
}

}
int zql;
zql = (100 * cnt1) / (cnt1 + cnt2);
printf("共答了%d道题,答对%d道题,答错%d道题,正确率为%d%%。\n", cnt1 + cnt2, cnt1, cnt2, zql);
return 0;
}

来源:http://jingyan.baidu.com/article/d5a880ebb2b01a13f147cc93.html

时间: 2024-12-16 07:15:17

第一周代码(四则运算)的相关文章

【第一周】四则运算

1.需求分析:对两个数字进行加减乘除四则运算 2.算法思想: (1)随机获取两个数字和一个运算符构成一个表达式 (2)对表达式进行四则运算并输出对错 (3)统计输出答对和答错的次数 3.具体代码: package ruan.jian.gong.cheng; import java.util.Random; import java.util.Scanner; public class FigureOperate { public static void main(String[] args) {

结对编程练习_四则运算(第一周)

结对编程项目-四则运算 (第一周) 题目需求 编程,实现一个能进行(加.减.乘.除)的命令行程序. 题目分析 本题要求一个能够实现加减乘除的程序. 首先有四种情况,需要用到else-if语句; 并且从命令行输入运算的数字以及运算符,需要定义数字的类型以及运算符类型; 最终将结果输出. 设计思路 加.减.乘.除四种运算,一开始的输入我调用了Scanner实例,不同运算用else-if语句来实现,先让用户输入一个数,然后选择一种运算方式,接着再输入一个数,最后得出结果.并利用循环加上一do-whil

20165215 结对编程——四则运算第一周

20165215 结队编程项目--四则运算第一周 需求分析 实现一个命令行程序,要求: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率 运行截图 代码连接 https://gitee.com/BESTI-IS-JAVA-2018/java-besti-is-20165215/commit/cca95df91207d2fe20c89e9a4c4dc0883b3e85f6 原文地址:https://www.cnblogs

结对编程——四则运算(第一周)

结对编程--四则运算(第一周) 需求分析 题目要求 一个命令行程序实现: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率 需求理解 输入:需要计算的式子数.计算结果 输出:判断后的答案(true/false) 满足真分数的运算如:1/3 + 1/4 = 7/12 处理的运算符为 +, ?, ×, ÷ 能处理用户的输入,并判断对错,统计正确率. 设计思路 自动生成四则运算,需要用到随机数,用随机数随机生成数字,以及随机

20165227 结对编程项目-四则运算 第一周

20165227 结对编程项目-四则运算 第一周 需求分析 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计题目完成数并计算正确率 设计思路 设计一个计算器能够实现简单的+.-.*./运算 通过编程实现多运算符计算.整数运算.真分数运算.判断结果等 进行junit检测 设计一个程序主类,达到生成随机数.题目.并判断正误 测试 UML类图 功能截图 结对感受 因为同为室友,所以结对起来更轻松方便,讨论的时间也更加地充足,对于队

20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结

20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: 需求分析 功能要求 1.自动生成题目 可独立使用(能实现自己编写测试类单独生成题目的功能) 可生成不同等级题目,类似于: 1级题目:2 + 5 =: 10 - 5 = 之类的两个数,一个运算符的题目 2.题目运算(判题) 可独立使用 实现中缀表达式转为后缀表达式并计算 判断用户答题正误,并输出正确结果 3.支持真分数 可独立使用 实现分数算式的

结对编程-四则运算 第一周总结

结对编程-四则运算 第一周总结 小组成员 20172313 余坤澎 20172332 于欣月 20172326 康皓越 需求分析 可以生成不同种类的题目 根据用户的需求来生成不同的题目 计算时生成真分数和整数,且结果为分数形式输出 可以输出括号 可以判断用户的正确 设计思路 第一种 设计一个level1类,只负责加减 设计一个level2类,只负责乘除 设计一个level3类,只负责加减乘除 设计一个转化类,将上述的类生成的表达式转换成计算式 比对结果类 缺点 在将括号进行插入时出现问题,难以将

20172319 结对编程练习_四则运算第一周阶段性总结

20172319 2018.04.23-05.02 结对编程练习_四则运算 第一周阶段性总结 目录 结对对象 需求分析 设计思路 结对评价 PSP 参考资料 结对对象: 20172316赵乾宸(驾驶,领航员) 20172319唐才铭(驾驶,领航员) 20172319王文彬(驾驶,领航员) 返回目录 需求分析: 1.项目内容 以结对小组形式编写代码,实现以下功能: 1.自动生成题目 可独立使用(能实现自己编写测试类单独生成题目的功能) 可生成不同等级题目,类似于: 1级题目:2 + 5 = 10

20172316 结对编程-四则运算 第一周 阶段总结

20172316 结对编程-四则运算 第一周 阶段总结 1.项目内容 以结对小组形式编写代码,实现以下功能: 1.自动生成题目 可独立使用(能实现自己编写测试类单独生成题目的功能) 可生成不同等级题目,类似于: 1级题目:2 + 5 = 10 - 5 = 之类的两个数,一个运算符的题目 2.题目运算(判题) 可独立使用 实现中缀表达式转为后缀表达式并计算 判断用户答题正误,并输出正确结果 3.支持真分数 可独立使用 实现分数算式的计算 4.题目去重(扩展需求,加分项) 可独立使用 实现对自动生成