撰寫函式void fun(int t[M][N],int p[N]),t指向一個M行N列的二維陣列,求出二維陣列每列中最小元素,并依次放入一維陣列p中。二維陣列中的資料在主函式中賦予,求出的每列最小元素在主函式中輸出。定義符號常量M為5,符號常量N為6。
uj5u.com熱心網友回復:
for example#define M 5
#define N 6
void fun(int t[M][N], int p[N])
{
int r, c, m;
for (c=0; c<N; c++)
{
m = t[0][c];
for (r=1; r<M; r++)
{
if (t[r][c] < m)
{
m=t[r][c];
}
}
p[c] = m;
}
}
int main()
{
int r, c, t[M][N]={0}, p[N]={0};
for (r=0; r<M; r++)
{
for (c=0; c<N; c++)
{
scanf("%d", &t[r][c]);
}
}
fun(t, p);
for (c=0; c<N; c++)
printf("%d ", p[c]);
return 0;
}
uj5u.com熱心網友回復:
一維陣列去用二維陣列的第一行填充。然后固定n比較就好了
#include <stdio.h>
#define M 5
#define N 6
void fun(int t[M][N],int p[N]){
int i=0,j=0;
for(i=0;i<N;i++){
p[i]=t[0][i];
}//賦值,如果你會指標可以直接指向第一行
for(j=0;j<N;j++){
for(i=0;i<M;i++){
if(p[j]>=t[i][j])
{
p[j]=t[i][j];
}
}
}
}
int main(){
int i=0;int j=0;
int t[M][N]={};
int p[N]={};
for(i=0;i<M;i++){
for(j=0;j<N;j++){
scanf("%d",&t[i][j]);
}
}
fun(t,p);
for(i=0;i<N;i++){
printf("%d ",p[i]);
}
printf("\n");
return 0;
}
樓上直接定義m也是一個原理,就是為的后面的比較
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80168.html
標籤:C語言
