Code xác định cấp số cộng bị sai

#include <iostream>
using namespace std;

void nhap(int &n, double arr[]);
void xuat(int kq);
int capSoCong(int n, double arr[]);
int main ()
{
	int n;
	double arr[100];
	nhap(n, arr);
	int kq = capSoCong(n, arr);
	return 0;
}

int capSoCong(int n, double arr[])
{
	double d = arr[1] - arr[0];
	for (int i = 1; i < n - 1; i++)
		if (arr[i] + d != arr[i + 1])
				cout<<"0"<<" ";
		else
			cout<<"1"<<" ";
}

void nhap(int &n, double arr[])
{
	cin>>n;
	for (int i = 0; i < n; i++)
		cin>>arr[I];

Tại sao kết quả đầu tiên lại sai vậy mọi ngươi.
P/s: em IT năm nhất mới học được 3 tháng thôi ạ.

Vì số phẩy động không chính xác như bạn nghĩ :slight_smile:
https://0.30000000000000004.com/
Bài này trừ ra < epsilon thì sẽ được.

7 Likes

vậy tại sao những kết quả sau lại đúng ạ ??
:thinking:

Mình tin rằng chỉ với 2 phút thì bạn chưa thể nào đọc xong những gì trong link:

Nên tốt hơn hết là hãy làm quen với việc đọc kỹ càng những gì người khác support rồi hãy thảo luận tiếp tục nhé bạn.
Hint: không chính xác không có nghĩa là luôn luôn không chính xác (a.k.a sai)

6 Likes

Cảm ơn anh(chị) đã góp ý ạ.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?