30/09/2018, 18:31

Kiểm tra giúp em code tính giá trị 2 vế cho trước rồi so sánh kết quả

Đề: Tinh gia trị vế trai, vế phải. Xuất ra kết quả rồi so sánh xem vế trai có bằng vế phải k!
VT: 1^2 + 2^2 + 3^2 +…+ n^2
VP: n*(n+1)*(2n+1)/6

CODE của em:

# include <stdio.h>
# include <conio.h>
# include <math.h>
main ()
{
	int i,n,Sohang, S1=0,S2=0;
	printf("Nhap vao gia tri n: ");
	scanf("%d",&n);
	for (i=1;i<=n;i++)
	{
		Sohang = pow(i,2);
		S1 = S1 + Sohang;
	}
	printf("Gia tri ve trai la: %d
", S1);
	S2 = (n*(n+1)*(2*n+1))/6;
	printf("Gia tri ve phai la: %d
", S2);
	if (S1 = S2)
		printf("Ve trai bang ve phai
");
	else printf("Ve trai khong bang ve phai
");
}
Gió viết 20:44 ngày 30/09/2018

12+ …+n2 =n*(n+1)*(2n+1)/6 la dung

if(S1==S2)

pow(i,2) != i*i

Viet Trung viết 20:40 ngày 30/09/2018

if(S1==S2)
Trong for, bạn có thể viết : S1 += pow(i,2)
@Gio Bạn có thể giải thích tại sao pow(i,2) != i*i được không?

Truong Vinh Tuong viết 20:36 ngày 30/09/2018

cai pow(I,2) tuc la I^2 do ban. Qui dinh trong C roi nhe ^^

Gió viết 20:36 ngày 30/09/2018

Hàm pow sử dụng kiểu dữ liệu là số thực, mà số thực sẽ có sai số nên sử dụng có thể có kq sai do cách chuyển dữ liệu số thực sang số nguyên. Trong bài tốt nhất viết i*i tránh dc TH đó, code cũng ngắn hơn

Bài liên quan
0