二维数组:C 编程
Two Dimensional Array: C Programming
谁能帮忙,我一直在解决这个问题:
Write a function in C that takes three parameters: the address of a
two dimensional array of type int
, the number of rows in the array,
and the number of columns in the array. Have the function calculate
the sum of the squares of the elements.
例如,对于下图的 nums
数组:
23 12 14 3
31 25 41 17
函数的调用可能是sumsquares ( nums, 2, 4 )
;并且返回的值将是 4434
。写一个小程序来测试你的功能。
到目前为止我的程序包括:
#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;
}
Output:
The sum of the squares: 4434.
我们可能会使用此语法在 C:
中创建多维数组
arr = (int **) malloc (( n *sizeof(int *));
谁能帮忙,我一直在解决这个问题:
Write a function in C that takes three parameters: the address of a two dimensional array of type
int
, the number of rows in the array, and the number of columns in the array. Have the function calculate the sum of the squares of the elements.
例如,对于下图的 nums
数组:
23 12 14 3
31 25 41 17
函数的调用可能是sumsquares ( nums, 2, 4 )
;并且返回的值将是 4434
。写一个小程序来测试你的功能。
到目前为止我的程序包括:
#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;
}
Output:
The sum of the squares: 4434.
我们可能会使用此语法在 C:
中创建多维数组arr = (int **) malloc (( n *sizeof(int *));