第二周实验(代码 截图 设计思路)
#include<iostream> #include<cstdlib> #include<ctime> using namespace std; #define random(x) (rand() % x) int gcd(int a, int b) { if (b == 0)return a; else return gcd(b, a%b); } int main() { int n = 30, a, b, i, d, e, s, f, a1, b1, d1, e1; char syb; srand(time(NULL)); while (n--) { s = random(2); a = random(99); a++; b = random(99); b++; i = random(4); if (s) { d = random(99); d++; e = random(99); e++; a %= b, d %= e; f = gcd(a, b); a /= f, b /= f; f = gcd(d, e); d /= f, e /= f; a1 = a*e, b1 = b*e, d1 = b*d; if (i == 0) { a1 += d1; syb = '+'; } else if (i == 1) { a1 -= d1; syb = '-'; } else if (i == 2) { a1 = a*d; syb = '*'; } else if (i == 3) { a1 = a*e; b1 = b*d; syb = '/'; } f = gcd(abs(a1), b1); a1 /= f, b1 /= f; cout << a << "/" << b << " " << syb << " " << d << "/" << e << " = " << a1 << "/" << b1 << endl; } else { b1 = 0; if (i == 0) { a1 = a + b; syb = '+'; } else if (i == 1) { a1 = a - b; syb = '-'; } else if (i == 2) { a1 = a*b; syb = '*'; } else if (i == 3) { a1 = a / b; b1 = a%b; syb = '/'; } cout << a << " " << syb << " " << b << " = " << a1; if (b1)cout << "+" << b1 << "/" << b; cout << endl; } } return 0; }
posted on 2016-03-12 16:32 bigbigbang 阅读(261) 评论(1) 编辑 收藏 举报