用指针数组求二维数组各行元素之和

题目:

利用指针数组求数组各行元素之和,并分别输出每行的求和结果。

测试输入:
54 21 36 58 4 78 46 2 35 47 69 28 91 51 32

预期输出:
第0行和为:173
第1行和为:208
第2行和为:271

参考代码:

#include<stdio.h>

int main()
{
    int N,M;
    scanf("%d%d",&N,&M);
	int a[N][M];
	int *p[N] ;
	int i,j,sum;
	for(i=0;i<N;i++)
	{ 
		for(p[i] = a[i]  ; p[i] < a[i]+M ; p[i]++)//p[i] = a[i] 将指针 p[i] 初始化为指向二维数组 a[i] 的首地址。这里的 a[i] 表示二维数组的第 i 行的首地址。p[i] < a[i] + M 是循环的条件,它判断指针 p[i] 是否还在当前行的有效范围内。a[i] + M 表示当前行的末尾地址,M 是二维数组每行的元素个数
		{ 
			scanf("%d",p[i]);//在循环体中,scanf("%d", p[i]) 用于输入一个整数,并将其存储到指针 p[i] 指向的位置。这样就实现了逐个输入二维数组的元素。
		}
	}
for(int i=0;i<N;i++)
{
    int sum=0;
    for(p[i]=a[i];p[i]<a[i]+M;p[i]++)
    {
        sum+=*p[i];
    }
    printf("第%d行和为:%d\n",i,sum);
}
	return 0;
}

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值