本题要求编写程序,使用指针方式求一个给定的m×n矩阵各行元素之和。
输入格式:
输入第一行给出两个正整数m和n(1≤m,n≤6),再输入m行数据,每行n个整数,每个整数之间用空格分隔。
输出格式:
输出m个整数,每行1个数。
输入样例:
2 3
1 2 3
4 5 6
输出样例:
6
15
法一: 普通数组去做:
#include<stdio.h>
int main()
{
int m,n;
scanf("%d %d",&m,&n);
int a[m][n],*p=a[0];
int i,j;
for(i=0;i<m;i++)
{
int sum=0;
for(j=0;j<n;j++)
{
scanf("%d",&(p+i)[j]);
sum+=(p+i)[j];
}
printf("%d",sum);
printf("\n");
}
return 0;
}
法二: 用指针去实现:
#include <stdio.h>
#define M 6
#define N 6
int main()
{
int a[M][N];
int m, n;
scanf("%d%d", &m, &n);
int i, j;
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
scanf("%d", &a[i][j]);
}
int(*p)[N];
for(p = a; p < a+m; p++)
{
int sum = 0;
for(i = 0; i < n; i++)
{
sum += (*p)[i];
}
printf("%d\n", sum);
}
return 0;
}