数组赋值到另一个数组里

#define _CRT_SECURE_NO_WARNINGS 1
/*请随机生成一个 5*10 的二维数组,数组元素大小为 0-256,对其进行隔列取值(隔
一列取一列),组成新的数组(5*5),求新数组的和、平均值,并找出每行的最大值。*/
#include 
#include 
int main()
{
    srand((unsigned)time(0));               //设置一个随机种子,防止运算数据输出重复
    int a[5][10],b[5][5];
    int i, j;
    int sum = 0;
    printf("随机生成的原数组:\n");
    for (i = 0; i < 5; i++)                   /*求原数组*/
        for (j = 0; j < 10; j++)
        {
            a[i][j] = (rand() % 257);
        }
    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)
        {
            b[i][j] = a[i][j];
            printf("%d\t", b[i][j]);
        }
        printf("\n");
    }
    /*求数组的和*/
    for (i = 0; i < 5; i++)
        for (j = 0; j < 10; j += 2)
        {
            sum = sum + b[i][j];
        }
    printf("和 : %d\n", sum);
    double avg = sum / 25;
    printf("平均值 : %.1f\n", avg);
    /*求每行最大值*/
    int max;
    printf("每行元素的最大值:\n");
    for (i = 0; i < 5; i++)
    {
        max = b[0][0];                         //将max重置,防止输出的值重复
        for (j = 0; j < 10; j += 2)
        {
            if (b[i][j] >= max)
                max = b[i][j];
        }
        printf("%d\t", max);
    }
}



img

请问这样算是建立新的数组了吗,就是将原数组510的值赋到新的55数组里。

b[i][j] 改成 b[i][j/2]

看你怎么考虑新数组的定义,从内存位置来看是的,但是数据没有更新。