Nhờ giúp đỡ bài tập C: tìm giá trị chẵn nhỏ nhất trong mảng và tính tổng các số chẵn

em đang làm bài tập C: có câu này xin thỉnh giáo các cụ:
tìm giá trị chẵn nhỏ nhất trong mảng và tính tổng các số chẵn:
thanks các cụ đã giúp đỡ!

số chẵn là chia 2 dư 0

for(i=0;i<n;i++)
{
if(a[i]%2!=0&&a[i]>min)
min=a[i];
printf("%d ",a[i]);
}

ý của bạn là thế này? không phải đâu bạn à, mình làm hoài chưa ra

bạn hiểu câu này thế nào?


Bài này nên chia làm 2 bài nhỏ.

  1. Tính tổng số chẵn. Tiện thể gán min vào 1 giá trị bất kì.
  2. Làm vòng for rồi tìm giá trị min (so sánh với min phía trên)
1 Like

Tào lao =D
nếu (a[i] % 2 == 0) && (a[i] < min)
thì gán min = a[i]

Xong hết vòng lặp ra ngoài mới in
Cậu không nên hỏi bài tập trên diễn đàn này

1 Like

thanks cậu mình làm ok rồi, nhầm 1 tý thôi

Thế ví dụ giá trị min mình gán lại là số lẻ nhỏ nhất thì sao nhỉ ?

Mình nói ở trên

=> Số min đó đã nằm trong vòng lặp tính tổng số chẵn => nó bắt buộc là số chẵn

Theo mình nếu muốn chặt thì nên làm như thế này:

int16_t findPositionFirstEven(int32_t arr[], int16_t num){

	for (int16_t i = 0; i < num; ++i) {
		
		if(arr[i] % 2 == 0) 	return i;
	}

	return -1;
}

int32_t findMinimumEvenNumber(int32_t arr[], int16_t num){

	int16_t min = findPositionFirstEven(arr, num);

	if(min == -1) 	return -1;

	for (int16_t i = min + 1; i < num; ++i) {
		
		if(arr[i] % 2 == 0 && arr[i] < arr[min]){

			min = i;
		}
	}

	return arr[min];
}

Số phần tử đúng ra là kiểu size_t.

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