Cần giải thích về bài mảng này

đáng lí in ra nó phải ra số chẵn hết mà sao lại in toàn số lẻ, đổi đi đổi lại thì thấy nó vẫn vậy. Mong các bạn giúp mình chỗ này với

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

int main()
{
    int a[]={1,2,3,4,5,6,7,8,9};
    int b=0;
    while(b<10){
            if(b%2==0)
            printf("%d\n",a[b]);
    b++;
    }
    return 0;
}

Biến này là thừa thãi. Việc bạn sử dụng nó vào thuật toán cũng bị sai.

Vì bạn dùng b rồi nên mình xài lại luôn:

sửa là:

if(a[b]%2==0)
3 Likes

Mảng trong C++ bắt đầu từ 0. Nếu bạn muốn in ra các số ở vị trí chẵn (theo ngôn ngữ tự nhiên) thì phải sửa lại điều kiện:

if (b % 2 == 1) printf("%d\n", a[b]);
1 Like

Arrays always start at zero. :smiley:

b là thứ tự của nó, và b luôn bắt đầu từ 0 mảng này từ 0 đến 8
Muốn so sánh, kiểm tra chẳn lẻ thì bác lấy a[b] là giá trị của mảng tại vị trí b

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