解答以下问题,如何实现函数是实参的转换

img


看看具体思路,解答以下,此实验题如何实现数组函数的传递,函数的值传递。


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//1、输出每个学生每门课的成绩和平均分
void task1(int **a,int L,int M){
int i,j;
float avg=0.0;
for(i=0;i<L;i++){
    printf("学生%d{",i+1);
    for(j=0;j<M;j++){
        printf("课程%d:%d  ",j+1,a[i][j]);
        avg+=a[i][j];
    }
    printf("  平均分:%4.1f}",avg/M);
    avg=0.0;
    printf("\n");
}
printf("\n");
}

//2、计算每门课的平均分
void task2(int **a,int L,int M){
int i,j;
float avg=0.0;
for(i=0;i<M;i++){
    for(j=0;j<L;j++){
        avg+=a[j][i];
    }
    printf("课程%d平均分:%4.1f\n",i+1,avg/L);
    avg=0.0;
}
printf("\n");
}

//3、找出每门课程的最高分和最低分所对应的学生
void task3(int **a,int L,int M){
int i,j;
int max=0,min=100;
int indexmax=0,indexmin=0;
for(i=0;i<M;i++){
    for(j=0;j<L;j++){
        if(a[j][i]>max){max=a[j][i];indexmax=j+1;}
        if(a[j][i]<min){min=a[j][i];indexmin=j+1;}
        }
    printf("课程%d最高分为学生%d,最低分为学生%d\n",i+1,indexmax,indexmin);
    indexmax=0;
    indexmin=0;
    max=0;
    min=100;
}
    printf("\n");  
}

//4、计算平均分方差
void task4(int **a,int L,int M){
float result=0.0,xi=0.0;
float avgi=0.0;
float avg[L];
int i,j;
//存储每一个学生的平均分
for(i=0;i<M;i++){
    for(j=0;j<L;j++){
        avgi+=a[j][i];
    }
    avg[i]=avgi/L;
    avgi=0.0;
}
//计算Xi
for(i=0;i<L;i++){
   xi=xi+avg[i];
}
for(i=0;i<L;i++){
    result=result+(pow(avg[i],2)-pow(xi/L,2));
}
printf("平均分方差为:%.2f",result/L);

}


int main(){
int M,L;
printf("请输入L(人数)和M(课程)的值:(空格隔开数据)\n");
scanf("%d%d",&L,&M);
int **a=malloc(sizeof(int)*M*L);//动态申请数组
int i,j;
//获取学生的成绩
for(i=0;i<L;i++){
    for(j=0;j<M;j++){
        scanf("%d",&a[i][j]);
    }
}

task1(a,L,M);
task2(a,L,M);
task3(a,L,M);
task4(a,L,M);

    return 0;
}

img

参考链接

C++详解(1) 重载函数调用实参和形参时的实参类型转换问题_I,Pencil的博客-CSDN博客 C++的重载函数是一个很好的技术,可以几个函数共用一个函数名称,这样就简化了函数命名,因为一个函数名称代表几个重载函数;但重载函数调用时实参和形参很可能不是精确匹配,如果不是精确匹配就需要考虑实参的类型转换问题重载确定的三个步骤:(1)候选函数(2)选择可行函数(3)寻找最佳匹配我把在重载函数类型转换大致分4种情况精确匹配通过类型提升通过标准转换通过类类型转换精确匹配// 省略头文件void test1(int x) { cout << "test1(int x)" https://blog.csdn.net/qq_41684393/article/details/110109459?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166857585416800192233880%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166857585416800192233880&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-15-110109459-null-null.nonecase&utm_term=%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%87%BD%E6%95%B0%E6%98%AF%E5%AE%9E%E5%8F%82%E7%9A%84%E8%BD%AC%E6%8D%A2&spm=1018.2226.3001.4450