Code tính S = 1 + (1*2)/(1+2)+ (1*2*3)/(1+2+3) + … + (1*2*…*n)/(1+2+…+n) không ra kết quả đúng

Đề bài.
Viết chương trình tính S = 1 + (1*2)/(1+2)+ (1*2*3)/(1+2+3) + … + (1*2*…*n)/(1+2+…+n) với n nhập từ bàn phím
code của mình viết thế này sao lại không đúng nhỉ:

#include<stdio.h>
#include<math.h>
void main()
{
	float n, tong, giaithua = 1, tong1 = 0;
	printf("Nhap n\n");
	scanf("%f", &n);
	for (float i = 1; i <= n; i++)
	{
		giaithua *= i;
		tong1 += i;
	}
	tong = giaithua / tong1;
	printf("S = %f", tong1);
}

Vì dòng cộng vào nằm ngoài for :slight_smile:

2 Likes

Bo vào trong for rồi mà vẫn sai bác ạ

đưa tong vao trong for. in ra là giá trị tổng chứ không phải tong1

Tong1=1 thì không đúng với lại cũng ko được

well mới nãy mình ghi nhầm @@ đã edit và giờ bổ sung :))
Thôi để mình đưa code luôn :))

#include<stdio.h>
#include<math.h>
int main()
{
	float n, tong=0, giaithua = 1, tong1 = 0;
	printf("Nhap n\n");
	scanf("%f", &n);
	for (int i = 1; i <= n; i++)
	{
		giaithua *= i;
		tong1 += i;
		tong += (giaithua / tong1);	
	}
	printf("S = %f", tong);
	return 0;
}

Bạn cho mình hỏi cách mình sai cho nào ấy nhỉ

Đưa

vào trong vòng for ở trên.

1 Like
  1. Như mọi người đã nói là b phải đưa tong vào for
  2. B phải có hàm cập nhật biến tong chứ không khi ct chạy thì nó chỉ hiện kq của giaithua/tong1 chứ không cộng thêm giá trị tổng trước ^^
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?