我需要創建程序,在輸出中我會得到第n個數字或序列。順序看起來像這樣:序列號
(-10,5,-2.5,1.25,-0.625 ...)
#include <iostream>
using namespace std;
double count (double n)
{
if (n==1)
return -10;
else
return (-10/((n-1)*(-2)));
}
double n;
main()
{
cout<<"n? : ";
cin>>n;
cout<<count(n);
return 0;
}
對我來說everythink看起來不錯對我來說,當我給程序1,它給出-10,當我給出2時,它給出5,但在3上它給出2.5,而不是-2.5,在4上它給出1.(6),這對我沒有意義。這段代碼中的錯誤在哪裏?
使用正確的工具來解決這樣的問題是你的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
爲什麼不將計算分解成單獨的步驟而不是將所有內容都粘在一行上?每當你得到一個沒有意義的計算時,最好的辦法是分解它,看看哪部分計算沒有返回正確的值。 – PaulMcKenzie
不要使用'double'值進行精確比較,如:'if(n == 1)' –