01/10/2018, 00:33

26 ====>>>> 4595565160.00000?

em làm vài hàm về mảng, đến lúc tinh trung bình thì đáng lẽ là 26 thì thành số cực lớn

main.c :

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int test[5] = {12,21,84,1,12};
    double test2[5] = {12,21,84,1,12};
    int luachon = 0;
    int max = 0;
    printf("====== LAM VIEC VOI ARRAY ====== 

");
    printf("1. Tong gia tri 
");
    printf("2. Trung binh gia tri toan tong
");
    printf("
Lua chon :
");
    scanf("%d",&luachon);
    switch(luachon)
    {
    case 1 :
        printf("Tong cac gia tri trong mang : %d",tongArray(test,5));
        break;
    case 2 :
        printf("Trung binh toan mang : %lf",trungbinh(test2,5));
        break;
    }
    return 0;
}

array.c :

int tongArray(int array[],int kichthuoc);
double trungbinh (int array[],int kichthuoc);

int tongArray(int array[],int kichthuoc)
{
    int i = 0;
    int tong = 0;
    for (i = 0; i <= kichthuoc ; i++)
    {
        tong += array[i];
    }
    return tong;
}

double trungbinh (int array[],int kichthuoc2)
{
    int i = 0 ;
    double trungbinh,tong = 0;
    for (i = 0; i <= kichthuoc2 ; i++)
    {
        tong += array[i];
    }
    trungbinh = tong/kichthuoc2;
    return trungbinh;
}

em bất lực

Pham Van Hai viết 02:45 ngày 01/10/2018

Sai ở đây:

for (i = 0; i <= kichthuoc ; i++)

Sửa lại i < kichthuoc (or kichthuoc2) mảng bắt đầu là 0, nếu n = 5, i = 0, 1, 2, 3, 4 là đủ 5 số rồi.

Bùi Thế Khải viết 02:46 ngày 01/10/2018

vẫn thế @Pham_Van_Hai

Nguyễn Hoàng Trung viết 02:49 ngày 01/10/2018

for (i = 0; i <= kichthuoc2 ; i++)
sửa cho hết chứ bác

Nguyễn Xuân Phúc viết 02:42 ngày 01/10/2018

double test2[5] = {12,21,84,1,12};

double trungbinh (int array[],int kichthuoc2)

ủa cái này mà nó k chửi luôn đó hả?
1 thằng double, 1 thằng int mà compiler nó cho qua à :o

Bài liên quan
0