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 đỡ!
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
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ỏ.
- Tính tổng số chẵn. Tiện thể gán min vào 1 giá trị bất kì.
- 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