01/10/2018, 09:46
Tính giá trị biểu thức trong c
chương trình này sai chỗ nào vậy mn?
#include<stdio.h>
#include<conio.h>
int main(){
int n,i,j,c,t=1;
float S;
printf("nhap n=");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++);
{
t=t*(j+1);
}
if(i%2==0)
c=1;
else
c=-1;
S+=(float)(c/t);
t=1;
}
printf("
gia tri cua bieu thuc la:%.2f",S);
return 0;
}
Đề bài
<img src="https://daynhauhoc.com//daynhauhoc.s3-ap-southeast-1.amazonaws.com/original/3X/f/6/f6d026ac0c2a32684a4f3856b36b85be93e56275.PNG" width="410" height="99">
Bài liên quan
Bạn nên học cách debug để biết sai chỗ nào, chứ lần sau gặp lại thì đi hỏi mất công lắm !
nếu dùng IDE code::blocks thì có thể xem cách debug của anh đạt qua links sau: https://www.youtube.com/watch?v=62iLjSY4QGE&list=PLyiioioEJSxEXbzan8Ot3BWl1D3rp9SVK&index=5
https://www.youtube.com/watch?v=KTasGgHK3lk&index=6&list=PLyiioioEJSxEXbzan8Ot3BWl1D3rp9SVK
ngược lại nếu dùng IDE visual studio: https://www.youtube.com/watch?v=Yk0PiqvaMjE&t=149s
nếu sai logic thì làm sao debug hả bạn ?
HI luong hulk.
Sai logic thì mới phải debug chứ @_@!. Cứ đặt bug tạo chỗ nào nghi ngờ rồi chạy thôi.
Sai là đúng rồi
n!=123*…n chứ đâu bằng 12(3*…*n(+1)
Xem lại chổ tính i! là biết
Bạn cho chạy luôn tới i vậy thì bạn đã nhân với i+1 => sai.
Đúng bài là đặt S = 1 cho nhẹ nhàng rồi nhân lên từ từ, không cần vòng lặp lồng.
Vả lại c/t là số nguyên nên kết quả sai.
Lỗi dùng sai với hiểu sai mới khó debug chứ cái đó thì vẫn được.
Hi gia cat luong
Bạn thử dùng code này xem
Còn đây là bằng c++