8.10 编写函数,将double类型二维数组的每一行同除以该行上绝对值最大的元素。要求:用指针实现,编写完整的main函数调用子函数。

已修正

#include<stdio.h>
#define M 5
#define N 5
void func(double (*s)[N]);
int main(void)
{
    double source[M][N]={
        {2.3,4.6,3.4,6.7,-2.3},
        {5.32,2.34,6.43,0.23,2.55},
        {0.22,0,-2.45,10.23,8.323},
        {3.44,2.33,21.2,12.3,34.3},
        {4.55,45.32,3.22,-30.23,12.23}
    };
    func(source);
    for(int i=0;i<M;i++)
    {
        for(int j=0;j<N;j++)
        {
            printf("%-9g ",source[i][j]);
        }
        printf("\n");
    }
}
void func(double (*s)[N])
{
    for(int i=0;i<M;i++)
    {
        double max=s[i][0];
        for(int j=1;j<N;j++)
        {
            if(s[i][j]>max)
            {
                max=s[i][j];
            }
        }
        for(int j=0;j<N;j++)
        {
            s[i][j]/=max;
        }
    }
}

 

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒