Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Lỗi trong ngôn ngữ C

15:20 07-11-2017 3.939 lượt xem 3 bình luận 09:44 14-11-2017

em đã fix hết lỗi. đến khi chạy trên cygwin nhập vào dữ liệu thì ko xuất ra kết quả mà báo lỗi Floating point exception(core dumped)
#include<stdio.h>
#include<math.h>
float s(int n)
{    
    float s=0;
    int i;
    for(i=1;i<=n;i++)
        s=s+(i+1)/sqrt(i);
        return s;
}
float s1(int n)
{    
    float s=0;
    int i;
    for(i=1;i<=n;i++)
        s=s+i;
        return s;
}
float s2(int n)
{    
    float s=0;
    int i;
    for(i=0;i<=n;i++)
        s=s+1/i+1;
        return s;
}
float s3(int n)
{    
    float s=0;
    int i;
    for(i=1;i<=n;i++)
        s=i*i+1;
        return s;
}
float s4(int n,int x,int y)
{    
    float s=0;
    int i;
    for(i=1;i<=n;i++)
        s=pow(x,y);
        return s;
}
float s5(int n)
{    
    float s=0;
    int i;
    for(i=-1;i<=n;i++)
        s=pow(-1,i)/i+1;
        return s;
}
int main()
{    
int n,x,y;
    printf("nhap n: ");
    scanf("%d",&n);
    printf("nhap x: ");
    scanf("%d",&x);
    printf("nhap y: ");
    scanf("%d",&y);
    while(n<=0)
    {
        printf("nhap lai\n n: ");
        scanf("%d",&n);
    }
    while(x<=0)
    {
        printf("nhap lai\n x: ");
        scanf("%d",&x);
    }
    while(y<=0)
    {
        printf("nhap lai\n y: ");
        scanf("%d",&y);
    }
    printf("a) S=%f",s(n));
    printf("b) S1=%f",s1(n));
    printf("c) S2=%f",s2(n));
    printf("d) S3=%f",s3(n));
    printf("e) S4=%f",s4(n,x,y));
    printf("f) S5=%f",s5(n));
    return 0;
}

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
nguyendat111195 đã bình luận 09:44 14-11-2017
float s2(int n)
{    
    float s=0;
    int i;
    for(i=0;i<=n;i++)
        s=s+1/i+1;
        return s;

Lỗi nè. 

Nếu i = 0 thì s = s+ 1/0 + 1 
 

Thế này thì đi luôn cả chương trình

hnguyen đã bình luận 16:41 08-11-2017

Lỗi chia cho 0 nha bạn

float s2(int n)
{    
    float s=0;
    int i;
    for(i=0;i<=n;i++)
        s=s+1/i+1;
        return s;
}
 s=s+1/i+1;

dòng này được hiểu là: s = s + (1 / i) + 1; trong khi i chạy từ 0->n; lỗi chia cho 0

float s5(int n)
{    
    float s=0;
    int i;
    for(i=-1;i<=n;i++)
        s=pow(-1,i)/i+1;
        return s;
}
s=pow(-1,i)/i+1;

tương tự như trên, i chạy từ -1->n; lỗi chia cho 0 nếu n >=0

K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 03:49 08-11-2017

cụ thể chết tại dòng code nào bạn. nhập đầu tiên hay thứ mấy

Câu hỏi mới nhất