定义一个5*5数组并初始化,用指针法求该数组最外侧的16个元素的平均值,用该平均值来代替数组的中间元素值.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/10/06 15:38:36
定义一个5*5数组并初始化,用指针法求该数组最外侧的16个元素的平均值,用该平均值来代替数组的中间元素值.
定义一个5*5数组并初始化,用指针法求该数组最外侧的16个元素的平均值,用该平均值来代替数组的中间元素
值.
定义一个5*5数组并初始化,用指针法求该数组最外侧的16个元素的平均值,用该平均值来代替数组的中间元素值.
#include <iostream>
using namespace std;
float LongLine(float *p);
float ShortLine(float *p);
void main ()
{
float sum=0,a[5][5];
int i,j,index;
float ave;
float *p = *a;
cout<<"输入数组元素,按行读取."<<endl;
for( i = 0;i<5;i++)
for(j=0;j<5;j++)
a[i][j] = i+j;
//cin>>a[i][j];
sum += LongLine(p);
for(i=0;i<3;i++)
sum += ShortLine(p);
sum += LongLine(p);
ave = sum/16;
p = *a;
index = 2*5+(5/2+1)-1;//中心位置.
for(j=0;j<index;j++)
p++;
*p = ave;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cout<<"\t"<<a[i][j];
cout<<endl;
}
}
float LongLine(float *p)//首行和末行元素求和
{
int temp = 0;
for(int i=0;i<5;i++)
{
temp += *p;
p++;
}
return temp;
}
float ShortLine(float *p)//其他行元素求和
{
int temp = 0;
temp += *p;
int i=3;
while(i--)
p++;
temp += *p;
return temp;
}
数组数据默认是角标之和,可以改成手工输入.
已经过测试.