Review code hai bài cơ bản lập trình với vòng lặp

  1. S=1/(12)+1/(23)+1/(34)+…+1/(n(n+1))
int n;
float i,j,sum=0;
printf(" nhap n= ");
scanf("%d",&n);
for(i=1;i<=n;i++){
    for(j=1;j<=i+1;j++){
        sum += 1/(i*j);
    }
} 
printf(" s=%.5f",sum);
  1. s=(1^2+2^2+3^2+n^2)/n^3
int n;
float i, sum=0;
printf("nhap n ");
scanf(" %d",&n);
for(i=1;i<=n;i++){
    sum +=pow(i,2)/pow(i,3);
}
printf(" s=%.4f",sum);

các hạng tử trong tổng có dạng 1/(i*(i+1)) (i->n)
bạn làm 2 vòng for như vậy sẽ bị thừa nhiều toán hạng như 1/(13) 1/(14)…
bạn có thể sửa bằng cách:
. for 1->n
sum+=1/(i*(i+1);
. phân tích S=1-1/(n+1);
2)
đề bài yêu cầu chia cho n^3 nên phải sửa ở biểu thức tính sum i->n

còn về cách khai báo khi kết là float thi các biến trong biểu thức mình nghĩ là lên đề cùng 1 kiểu float để tránh sai sót khi tính các phép tinh đơn lẹ trong biểu thức

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