Giúp bài tập code C tính trung bình cộng các giá trị lớn nhất của các phần tử trên các cột chẵn

Cho ma trận với các phần tử không âm a[r,s], với r, s được nhập vào từ bàn phím. Vẽ 1 sơ đồ khối, viết 1 chương trình để tính và in:

a) Trung bình cộng các giá trị lớn nhất của các phần tử trên các cột chẵn.

b) Trung bình cộng các phần tử lẻ của mảng nằm trong khoảng [5;99].
Mọi ngườgiúp e bài này với ạ

Lặp và điều kiện thôi.

  • Bạn biết các duyệt mảng 2 chiều chưa?
  • Bạn biết sử dụng câu lệnh điều kiện (rẽ nhánh) chưa?
  • Quan trọng, bạn có làm được một ít nào chưa?

tưởng tượng được mảng hai chiều là sẽ làm được thôi
image
Ý tưởng:

a)

  • tạo 1 biến sum
  • vòng lặp qua các cột chẵn, tìm max, sum += max
  • trung bình = sum / tổng số cột chẵn

b)

  • tạo 1 biến sum, 1 biến count
  • vòng lặp qua tất cả phần tử x của mảng, nếu lẻ và thuộc [5,99] thì sum += x và count++
  • trung bình = sum / count
3 Likes

em chỉ biết tìm giá trị lớn nhất thôi ạ :frowning:

em mới học chưa hiểu bài lắm mong mọi người giúp đỡ

đề cho ma trận kia là mình phải làm theo mảng 2 chiều ạ?

#include <stdio.h>
 int sum=0;
int (int a[], int n);
{
    for (int i = 0; i < n; i++)
    {
        printf("Nhap vao phan tu a[%d]: ", i);
        scanf("%d", &a[i]);
    }
}
int max(int a[], int n)
{
    int max = a[0];
    for (int i = 1; i < n; i++)
        if (max < a[i])
            max = a[i];
    return max;
}
 
int min(int a[], int n)
{
    int min = a[0];
    for (int i = 1; i < n; i++)
        if (min > a[i])
            min = a[i];
    return min;
}
int main()
{
    int a[1000];
    int n;
    printf("\nNhap n = ");
    scanf("%d", &n);
    nhap(a, n);
    printf("\nMax = %d", max(a, n));
    printf("\nMin = %d", min(a, n));
    return 0;
}

Anh/chị giúp phần tìm trung bình trên các phần tử ở cột chẵn được không ạ T_T

Bạn tìm đọc về mảng hai chiều trước đã rồi hãy làm. Hàm tìm min max như vậy là được rồi

Duyệt mảng:
Mảng 1 chiều, 1 vòng lặp.
Mảng 2 chiều, 2 vòng lặp lồng nhau.
Mảng 3 chiều, 3 vòng lặp lồng nhau.
Mảng x chiều, x vòng lặp lồng nhau.
Đã học đến đây thì phải biết duyệt mảng 2 chiều (ma trận) rồi chứ.

Hàm tìm minmax vậy là ổn rồi, chỉ cần gọi thôi.

Lưu ý dấu ;.

3 Likes

Câu A:

Tạo một biến tổng (gọi là sum ), dùng để tính tổng các phần tử lớn nhất ở các cột chẵn.

Tìm chỉ số cột i sao cho (i + 1) mod 2 = 0 (các cột ở vị trí chẵn). Sau đó, thực hiện hàm ­MAX để tìm số lớn nhất trong cột đó – max(a[i], s) và cộng kết quả vào trong biến tổng sum .

Tìm trung bình cộng bằng cách lấy biến sum và chia cho giá trị (r+1)/3 nếu r lẻ và r/2 nếu r chẵn.

Câu B:

Tạo một biến tổng (gọi là sum2 ), dùng để tính tổng các phần tử lẻ của mảng nằm trong khoảng [5;99]. Đồng thời, tạo thêm một biến đếm (gọi là count ), dùng để giám sát số lượng phần tử…

Lượt qua từng cột i và các giá trị trong nó dùng 2 vòng lặp (với i chạy đến r và j chạy đến s). Xét từng giá trị a[i][j] trong mảng sao cho a[i][j] mod 2 != 0 và 5 <= a[i][j] <= 99 , cộng các giá trị ấy vào trong biến sum2 và cộng thêm một giá trị cho biến count.

Tìm trung bình cộng bằng cách lấy biến sum2 và chia cho count. sum2 / count

// Nếu mình có làm sai gì thì cứ tự do chỉ trích mình nhé, mình cũng vừa mới học nên cũng hơi thiếu kinh nghiệm :D. Về phần code thì chắc bạn cũng có thể lo được, nhưng cứ thỏa thích hỏi về code, mình sẽ… thử giúp cho :))

1 Like

em không biết lồng cái chỗ tính trung bình phần tử trên cột chẵn ấy ạ, ở lớp thầy em dạy không cho nhiều ví dụ nên không hiểu :(( mấy cái đấy là em tự học nên nó không rõ lắm. Anh giúp e cái phần trên cột chẵn với ạ

A post was split to a new topic: Đọc tập tin tính tiền

Mình học hệ thống năm nhất mà dân khối D vào chả biết gì tin luôn :v nhưng mà anyway cảm ơn bạn nhiều

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