随即二维数组的割裂取值

img


怎么才能将随机的二维数组隔列取值(隔一列取一列)啊,生成上面的数组后不会隔列取值了,要求生成的(5*5)的新数组;最主要的是两个数组都要输出。

j+=2
取值时第二层for循环由j++改为j+=2,像下面这样!

# include<stdio.h>
# include<stdlib.h>
int main(){
    int a[5][10];
    for (int i=0;i<5;i++){
        for(int j=0;j<10;j++){
            a[i][j] = (rand()%256);
        }
    }
//    全部输出 
    for (int i=0;i<5;i++){
        for(int j=0;j<10;j++){
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }
// 隔行输出 
    printf("\n");
    for (int i=0;i<5;i++){
        for(int j=0;j<10;j+=2){
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }
} 

img


用字符数组或者整形数组就ok,用不着指针类型数组。
有帮助的话采纳一下哦!

unsigned char a[5][10]; 定义那里多了个 *

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

int main()
{
    unsigned char a[5][10];
    int i, j;
    for(i = 0; i < 5; i++)
        for(j = 0; j < 10; j++)
            a[i][j] = rand() % 256;
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 10; j++)
            printf("%d\t", a[i][j]);
        printf("\n");
    }
    printf("\n");
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 10; j+=2)
            printf("%d\t", a[i][j]);
        printf("\n");
    }
    return 0;
}