01/10/2018, 11:55

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 + (12)/(1+2)+ (123)/(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
");
	scanf("%f", &n);
	for (float i = 1; i <= n; i++)
	{
		giaithua *= i;
		tong1 += i;
	}
	tong = giaithua / tong1;
	printf("S = %f", tong1);
}
rogp10 viết 14:02 ngày 01/10/2018

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

long viết 14:02 ngày 01/10/2018

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

Quang Minh viết 14:03 ngày 01/10/2018

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

long viết 14:10 ngày 01/10/2018

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

Quang Minh viết 14:07 ngày 01/10/2018

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;
}
long viết 13:59 ngày 01/10/2018

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

HK boy viết 14:02 ngày 01/10/2018

Đưa

tong = giaithua / tong1;

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

Quang Minh viết 14:06 ngày 01/10/2018
  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 ^^
Bài liên quan
0