编写函数,实现将二维数组行、列下标之和为偶数的数组元素输出,并计算这些元素之和。在main函数中验证。要求:二维数组的行数、列数、数组元素均在main函数中由键盘输入。
4条回答 默认 最新
- 技术专家团-小桥流水 2022-03-01 16:46关注
有两种方法,一种是直接定义一个大数组,第二种方法是使用二级指针。
(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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 linux驱动,linux应用,多线程
- ¥20 我要一个分身加定位两个功能的安卓app
- ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
- ¥15 IAR程序莫名变量多重定义
- ¥15 (标签-UDP|关键词-client)
- ¥15 关于库卡officelite无法与虚拟机通讯的问题
- ¥15 目标检测项目无法读取视频
- ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
- ¥100 求采集电商背景音乐的方法
- ¥15 数学建模竞赛求指导帮助