C++编程:请编写一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求

请编写一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指一维数组中。二维数组中的元素值在主函数中随机产生(值域范围[1, 9])。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define M 3
#define N 9

void fun(int tt[M][N], int pp[N])
{
    int i, j, tmax;
    for (i=0; i < N; ++i){
        tmax = tt[0][i];
        for(j = 1; j < M; ++j){
            if (tmax < tt[j][i]){
                tmax = tt[j][i];
            }
        }
        pp[i] = tmax;
    }
}
int main()
{
    int i, j;
    int tt[M][N], pp[N];
    srand((unsigned)time(NULL));
    for (i = 0; i < M; ++i){
        for (j = 0; j < N; ++j){
            tt[i][j] = rand()%9+1;
        }
    }
    printf ("产生的随机数:\n");
    for (i = 0; i < M; ++i){
        for (j = 0; j < N; ++j){
            printf ("%d ", tt[i][j]);
        }
        printf ("\n");
    }
    fun(tt, pp);
    printf ("运算之后的结果:\n");
    for (i = 0; i < N; ++i){
        printf ("%d ", pp[i]);
    }
    printf ("\n");
    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-07-20
#include <stdlib.h>

void fun(int **tt, int pp[], int N, int M)
{
for (int i = 0; i < N; i++)
{
pp[i] = tt[i][0];
for (int j = 1; j < M; j++)
{
pp[i] = (tt[i][j] > pp[i]) ? tt[i][j] : pp[i];
}
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int a[5][5];
int *p[5];
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
a[i][j] = rand() % 10;
}
p[i] = a[i];
}

int pp[5];
fun(p, pp, 5, 5);

for (int i = 0; i < 5; i++)
printf("%d ", pp[i]);
getchar();
return 0;
}本回答被网友采纳

求C++高手!!!
13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。***14.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:若二维...

C++编程M行N列的矩阵
\/\/创建一个2维数组,并初始化 int **p;int i,j;int line ,row;cout<<"输入行数"<<endl;cin>>line;cout<<"输入列数"<<endl;cin>>row;p=(int**)malloc(sizeof(int*)*line);\/\/行 for(i=0;i<line;i++)p[i] = (int*)malloc(sizeof(int)*row);\/\/列 cout<<"输入数据"<<e...

C++编程,关于凸多边形的问题
if(tt(p,m,j)) {flag[m]=1;m=j; break; } 表示把第一个点传入tt函数,判断所有的待测点是否位于由m和j点所构成的直线的同一侧,如果位于同一侧则表示有可能能构成图多边形,tt函数反回1,然后把标志位设置为flag[m]设为1,因为m=0,因此就是flag[0]=1;然后把j赋给m,以循环判断下...

用C语言编写程序
请输入第1个学生的姓名:tt 请输入第1个学生的学号:001 请输入第1个学生的英文成绩:abc 请重新输入第1个学生的英文成绩(0-100):99 请输入第1个学生的数学成绩:abc 请重新输入第1个学生的数学成绩(0-100):90 请输入第1个学生的C语言成绩:ee 请重新输入第1个学生的C语言成绩(0-100):70 请...

c++问题: …… class TT {public: TT(int n,int a):num(n),age(a){...
TT(int n,int a):num(n),age(a){}: 构造函数对成员变量初始化有两种方式,一种是列表初始化,另一种是复制初始化。这里是前者,表示将num初始化为n,age初始化为a

程序填空,函数fun是统计在tt字符串中 'a' 到 'z' 26个字母各自出现的次...
答案是:1、tt 2、0 3、*p-'a'fun函数是自定义的C\/C++语言函数,函数功能多样。该函数名为“函数”英文function的简写,一般在示例和试题中使用,通常在主函数中被调用。

...#include<conio.h> char*fun(char tt[]) { int i; for ("i=0;tt...
<math.h> include "class.h"using namespace std; \/\/ 使用标准的名空间 int main(int argc, char *argv[]) \/\/ 标准 C++中 必须显式的申明 main 的返回值类型,不写的话有些编译器默认是 int 型 { float l, w, h;...p[i].OutPut();} return 0; \/\/ 记得返回值 } ...

用C++编程输入N个点的坐标,判断这N个点能否构成一个凸多边形
if(tt(p,0,m)) return 1;return 0;} void main(){ double p[N][2];char ch='y';while (ch=='y'||ch=='Y'){ cout<<"请输入这N个点坐标:"<<endl;for(int i=0;i<N;i++){ cout<<" 第"<<i<<"个点坐标:";cin>>p[i][0]>>p[i][1];\/\/cin>>**p>>*(*p+1)...

程序填空,函数fun是统计在tt字符串中 'a' 到 'z' 26个字母各自出现的次...
答案是:1、tt 2、0 3、*p-'a'fun函数是自定义的C\/C++语言函数,函数功能多样。该函数名为“函数”英文function的简写,一般在示例和试题中使用,通常在主函数中被调用。

C++啊啊啊(在线等)
void main(){ int m,n,r,tt,temp;printf("Please input two positive integers:\\n");scanf("%d%d",&m,&n);tt=m*n;if(m<n) \/\/ 这里用于m,n的交换,由后面的r=m%n判断出m大于n(但是事实上这里不需要的,里面3句可以随便填写,只要不改变tt,m,n的值就行了.){ temp=m;m=n;n=...

相似回答