题目简介:
编写程序:随机生成一个矩阵,使用指针计算矩阵中对角线元素之和,矩阵中每个元素由随机函数随机生成。
编程思路:
利用随机函数随机生成对角线元素之和,定义数组指针,使其指向二维数组,利用指针计算对角线元素之和。
代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<stdlib.h>//rand():随机数生成器;
void input(int *p0,int n)
{
int i,j;
srand((unsigned) time(NULL));
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
*((p0+i)+j)=rand()%10;
}
}
}
int djxh(int *p1,int n)
{
int i,j,sum=0;
for(i=0,j=0;i<n;i++,j++)
{
sum+=*((p1+i)+j);
}
for(i=0,j=n-1;i<n;i++,j--)
{
sum+=*((p1+i)+j);
}
return sum;
}
void output(int *p2,int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%5d",*((p2+i)+j));
}
printf("\n\n\n");
}
}
int main()
{
int N,a[101][101];
srand((unsigned) time(NULL));
N=rand()%4+2;
input(a,N);
output(a,N);
printf("%d",djxh(a,N));
return 0;
}