二维数组:C编程



有人能帮忙吗?我一直在解决这个问题:

用C编写一个函数,该函数包含三个参数:类型为CCD_ 1的二维阵列、阵列中的行数,以及阵列中的列数。有函数计算元素的平方和。

例如,对于下图所示的nums阵列:

  23  12  14   3
  31  25  41  17

函数的调用可能是CCD_ 3;并且返回的值将是CCD_ 4。写一个简短的程序来测试你的功能。


到目前为止,我的程序包括:

#include<stdio.h>
int addarrayA(int arrayA[],int highestvalueA);
int addarrayA(int arrayA[],int highestvalueA)
{
int sum=0, i;
for (i=1; i<highestvalueA; i++)
    sum = (i*i);
return sum;
}
int main( void )
{
int arr [2][4] = {{ 23, 12, 14,  3 },
                 { 31, 25, 41, 17 }};
printf( "The sum of the squares: %d. n", addarrayA (arr[2], arr[4]) );
return 0;
}

我收到的答案是一个巨大的负数,但应该是4434。

非常感谢您的帮助!

正如您在问题中提到的,您需要sumsquares( array, 2, 4 );,但您的函数不能做到这一点。

参见以下代码:

#include<stdio.h>
int sumsquares(int* arrayA,int row, int column);
int sumsquares(int* arrayA,int row, int column)
{
    int sum=0, i;
    for (i=0; i<row*column; i++)
        sum += (arrayA[i]*arrayA[i]);
    return sum;
}
int main( void )
{
    int arr [2][4] = {{ 23, 12, 14,  3 },
                      { 31, 25, 41, 17 }};
    printf( "The sum of the squares: %d. n", sumsquares (&arr[0][0], 2, 4) );
    return 0;
}

输出

The sum of the squares: 4434.

我们可以使用此语法在C:中创建多维数组

arr = (int **) malloc (( n *sizeof(int *));

相关内容

  • 没有找到相关文章

最新更新