01/10/2018, 12:29

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
",a[b]);
    b++;
    }
    return 0;
}
Dark.Hades viết 14:44 ngày 01/10/2018

int b=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:

if(b%2==0)

sửa là:

if(a[b]%2==0)
HK boy viết 14:30 ngày 01/10/2018

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]);
Vũ Thanh viết 14:30 ngày 01/10/2018

Arrays always start at zero.

Phan Trọng Tính viết 14:36 ngày 01/10/2018

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

Bài liên quan
0