我在看了一個小時的C++教程後,寫了這個愚蠢的小程序。這是垃圾,但它產生了一些非常奇怪的錯誤,一些軟件工程師無法解決,所以現在我們很感興趣。關於初學者程序的難題
它應該吐出二項式和三項式,然後給出三項式的導數。美元符號可以幫助我將副本複製到LaTeX中。
編輯:在輸出中的確切的錯誤是它的發佈: 「inear方程你需要-12x + 8 $?」的 代替 「微分=」
感謝您的評論。
對於那些指出爲什麼輸出如此奇怪的人來說,這是一個很好的選擇。
輸出:
How many sets of 3 linear equations do you need?
2
How many sets of 3 quadratics do you need?
2
12x-3
-3x+12
-5x-9
15x-5
-5x+15
-4x-2
$8x^2-15x-6$
inear equations do you need?16x-15$
$-15x^2-6x+8$
inear equations do you need?-30x-6$
$-6x^28x-15$
inear equations do you need?-12x+8$
$2x^2-13x-2$
inear equations do you need?4x-13$
$-13x^2-2x+2$
inear equations do you need?-26x-2$
$-2x^22x-13$
inear equations do you need?-4x+2$
$11x^2-3x-13$
inear equations do you need?22x-3$
$-3x^2-13x+11$
inear equations do you need?-6x-13$
$-13x^211x-3$
inear equations do you need?-26x+11$
Press any key to continue . . .
驗證碼:
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
/*Simple Function maker*/
using namespace std;
void polynomial(string numberOfPolys)
{
/*AX^2+BX+C format*/
for (int i = 0; i <= (std::stoi(numberOfPolys, 0)); i++) {
int a = (rand() % 15) + 1;
int b = -1 * ((rand() % 15) + 1);
int c = -1 * ((rand() % 15) + 1);
int d = -1 * ((rand() % 15) + 1);
string problemWriter = '$' + to_string(a) + 'x' + '^' + '2' + to_string(b) + 'x' + to_string(c) + '$';
string problemWriter2 = '$' + to_string(b) + 'x' + '^' + '2' + to_string(c) + 'x' + '+' + to_string(a) + '$';
string problemWriter3 = '$' + to_string(c) + 'x' + '^' + '2' + to_string(a) + 'x' + to_string(b) + '$';
string answerWriter = "Derivative= " + '$' + to_string(a * 2) + 'x' + to_string(b) + '$';
string answerWriter2 = "Derivative= " + '$' + to_string(b * 2) + 'x' + to_string(c) + '$';
string answerWriter3 = "Derivative= " + '$' + to_string(c * 2) + 'x' + '+' + to_string(a) + '$';
cout << problemWriter << endl;
cout << answerWriter << endl;
cout << problemWriter2 << endl;
cout << answerWriter2 << endl;
cout << problemWriter3 << endl;
cout << answerWriter3 << endl;
}
}
int main()
{ /*MX+B format*/
string input;
string polys;
cout << "How many sets of 3 linear equations do you need?" << endl;
getline(cin, input);
cout << "How many sets of 3 quadratics do you need?" << endl;
getline(cin, polys);
for (int i = 0; i < (std::stoi(input, 0)); i++) {
int f = (rand() % 15) + 1;
int g = -1 * ((rand() % 15) + 1);
int h = -1 * ((rand() % 15) + 1);
int k = -1 * (rand() % 15) + 1;
string problemLWriter = to_string(f) + 'x' + to_string(g);
string problemLWriter2 = to_string(g) + 'x' + '+' + to_string(f);
string problemLWriter3 = to_string(h) + 'x' + to_string(k);
cout << problemLWriter << endl;
cout << problemLWriter2 << endl;
cout << problemLWriter3 << endl;
}
polynomial(polys);
return 0;
}
*,但它產生的一個非常奇怪的錯誤那幾個軟件工程師一直沒能解決*你應該說的是什麼錯誤。 – NathanOliver
謝謝,編輯該信息 – goruda
歡迎來到堆棧溢出!這聽起來像你可能需要學習如何使用調試器來遍歷代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:** [如何調試小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver