定义一个5*5数组并初始化,用指针法求该数组最外侧的16个元素的平均值,用该平均值来代替数组的中间元素值.

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 03:06:31

定义一个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;
}
数组数据默认是角标之和,可以改成手工输入.
已经过测试.