Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Sửa lỗi Hàm tính tổng các số chia hết cho 3?

  1. #1
    Ngày gia nhập
    08 2011
    Bài viết
    5

    Unhappy Sửa lỗi Hàm tính tổng các số chia hết cho 3?

    Code:
    #include <stdio.h>
    #include <conio.h>
    int tinhTong(int ds[]);
    int tinhTong(int ds[]){
        int i,n;
        int tong=0;
        for(i=0;i<n;i++){
            if(ds[i]%3==0){
                tong=tong+ds[i];
            }
        }
        return tong;
    }
    main(){
        int a[100],i,n,tg;
        printf("\nNhap so phan tu: ");
        scanf("%d",&n);
        printf("\nNhap day so");
        for(i=0;i<n;i++){
            printf("\nSo thu %d: ",i+1);
            scanf("%d",&a[i]);
        }
        tg=tinhTong(a);
        printf("\nTong cac so chia het cho 3 = %d",tg);
        getch();
    }
    Mình nghĩ mãi mà chưa bít lỗi ở đâu, chương trình chạy nhưng ko có kết quả :(
    Thanks

  2. #2
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    bạn không truyền số phần tử (n) cho hàm tính tổng thì làm sao nó biết mảng của bạn có bao nhiêu phần tử?
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int tinhTong(int ds[], int n){
    5.     int i;
    6.     int tong=0;
    7.     for(i=0;i<n;i++){
    8.         if(ds[i]%3==0){
    9.             tong=tong+ds[i];
    10.         }
    11.     }
    12.     return tong;
    13. }
    14.  
    15. main(){
    16.     int a[100],i,n,tg;
    17.  
    18.     printf("\nNhap so phan tu: ");
    19.     scanf("%d",&n);
    20.     printf("\nNhap day so");
    21.  
    22.     for(i=0;i<n;i++){
    23.         printf("\nSo thu %d: ",i+1);
    24.         scanf("%d",&a[i]);
    25.     }
    26.  
    27.     tg=tinhTong(a, n);
    28.  
    29.     printf("\nTong cac so chia het cho 3 = %d",tg);
    30.     getch();
    31. }
    p/s: xem lại cách khai báo prototype

  3. #3
    Ngày gia nhập
    08 2011
    Bài viết
    5

    ah thanks bạn. Mới học hàm nên nhìu thíu sót quá ^^
    Đã được chỉnh sửa lần cuối bởi Shock0z : 24-10-2011 lúc 10:47 AM.

  4. #4
    Ngày gia nhập
    01 2011
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi Shock0z Xem bài viết
    Code:
    #include <stdio.h>
    #include <conio.h>
    int tinhTong(int ds[]);
    int tinhTong(int ds[]){
        int i,n;
        int tong=0;
        for(i=0;i<n;i++){
            if(ds[i]%3==0){
                tong=tong+ds[i];
            }
        }
        return tong;
    }
    main(){
        int a[100],i,n,tg;
        printf("\nNhap so phan tu: ");
        scanf("%d",&n);
        printf("\nNhap day so");
        for(i=0;i<n;i++){
            printf("\nSo thu %d: ",i+1);
            scanf("%d",&a[i]);
        }
        tg=tinhTong(a);
        printf("\nTong cac so chia het cho 3 = %d",tg);
        getch();
    }
    Mình nghĩ mãi mà chưa bít lỗi ở đâu, chương trình chạy nhưng ko có kết quả :(
    Thanks
    muốn hiển thị kết quả ra màn hình phải gọi tổng của nó ra chứ

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    5

    bạn nên trình bày cẩn thận chút thì dễ kiểm tra lỗi.nên dùng 1 loại biến mảng thôi,chỗ thì dùng ds[],chỗ lại dùng a[].lỗi không chạy của bạn là do trong hàm main,tg=tinhTong(a),chưa truyền tham số n thì nó không biết được tính đến đâu.code mình chỉnh sửa chút.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int tinhTong(int a[],int n)
    5. {
    6.     int i;
    7.     int tong=0;
    8.     for(i=0;i<n;i++)
    9.     {
    10.                     if(a[i]%3==0)
    11.                     tong=tong+a[i];
    12.                     }
    13.     return tong;
    14. }
    15. main()
    16. {
    17.     int a[100],i,n,tg;
    18.     printf("\nNhap so phan tu: ");
    19.     scanf("%d",&n);
    20.     printf("\nNhap day so");
    21.     for(i=0;i<n;i++){
    22.         printf("\nSo thu %d: ",i+1);
    23.         scanf("%d",&a[i]);
    24.     }
    25.     tg=tinhTong(a,n);
    26.     printf("\nTong cac so chia het cho 3 = %d",tg);
    27.     getch();
    28. }

Các đề tài tương tự

  1. Trả lời: 2
    Bài viết cuối: 21-04-2013, 09:46 AM
  2. Lỗi: bố cục trang web tự tăng theo chiều ngang khi chiều cao thay đổi
    Gửi bởi tuanngocpt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 16-03-2013, 11:25 PM
  3. Trả lời: 1
    Bài viết cuối: 28-04-2012, 09:43 PM
  4. Cách truyền mang 1 chiều cho hàm bài con trỏ và mảng một chiều ai có thể giải thích giúp mình
    Gửi bởi biencute trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 21-03-2012, 09:00 AM
  5. Lời giải bài tập: Chuỗi Ký tự, mảng số nguyên 1 chiều, mảng 2 chiều, tạo Menu
    Gửi bởi xuanngoc trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 15-10-2011, 01:17 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn