编写函数,实现将二维数组行、列下标之和为偶数的数组元素输出,并计算这些元素之和。在main函数中验证。要求:二维数组的行数、列数、数组元素均在main函数中由键盘输入。
有两种方法,一种是直接定义一个大数组,第二种方法是使用二级指针。
(1)使用大数组的方法:
#include <stdio.h>
#include <stdlib.h>
//定义数组最大范围
#define MAX 100
int main()
{
int a[MAX][MAX],i,j,sum=0;
int row,col;
printf("请输入行数和列数:");
scanf("%d %d",&row,&col);
printf("请输入%d*%d的二维数组:\n",row,col);
for (i=0;i<row;i++)
{
for (j=0;j<col;j++)
{
scanf("%d",&a[i][j]);
}
}
//输出元素
for (i=0;i<row;i++)
{
for (j=0;j<col;j++)
{
if((i+j)%2==0)
{
printf("%d ",a[i][j]);
sum += a[i][j];
}
}
}
//输出和
printf("\nsum=%d\n",sum);
return 0;
}
(2)使用二级指针的方式
#include <stdio.h>
#include <stdlib.h>
int main()
{
int** a;
int i,j,sum=0;
int row,col;
printf("请输入行数和列数:");
scanf("%d %d",&row,&col);
a = (int**)malloc(sizeof(int*)*row);
printf("请输入%d*%d的二维数组:\n",row,col);
for (i=0;i<row;i++)
{
a[i] = (int*)malloc(sizeof(int)*col);
for (j=0;j<col;j++)
{
scanf("%d",&a[i][j]);
}
}
//输出元素
for (i=0;i<row;i++)
{
for (j=0;j<col;j++)
{
if((i+j)%2==0)
{
printf("%d ",a[i][j]);
sum += a[i][j];
}
}
}
//输出和
printf("sum=%d\n",sum);
//释放空间
for(i=0;i<row;i++)
{
free(a[i]);
a[i]=0;
}
free(a);
a=0;
return 0;
}
行列都直接输入了不是很简单吗,直接遍历,里面判断行列和是不是偶数,是偶数就存到新的数组中,在对新数组的元素遍历累加
你先试着自己做做啊,这是很简单的逻辑题,基本语法。
然后代码有问题贴出来,大家帮你分析。
直接让别人给你做题,对你和对大家,都很消极啊~
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!