撰寫程式:輸入一個3行4列的二維陣列的元素值,呼叫一個自定義函式求二維陣列每列元素中的最小值的和值,和值通過回傳值傳回主函式輸出。
如:輸入的陣列為:
1 2 3 4
0 8 3 1
3 5 7 1
輸出:6
uj5u.com熱心網友回復:
解決代碼:只是用了一個雙層回圈輸入,一個雙層回圈比較和累加,具體如下
#include <iostream>
using namespace std;
int sum(int (*ar)[4]) {
int all = 0;
int var;
int i, j;
for (i = 0; i < 4; ++i) {
var = ar[0][i];
for (j = 1; j < 3; ++j)
{
if (var > ar[j][i])
var = ar[j][i];
}
all += var;
}
return all;
}
int main()
{
int i, j;
int ar[3][4];
for (i = 0; i < 3; ++i)
for (j = 0; j < 4; ++j)
cin >> ar[i][j];
cout << sum(ar);
return 0;
}
uj5u.com熱心網友回復:
樓上是c++,翻譯成c語言的
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int mArray(int myArr[][4])
{
int i = 0, j = 0, min = 0, sum = 0;
for (i = 0; i < 4; i++)
{
min = myArr[0][i];
for (j = 0; j < 3; j++)
{
if (min > myArr[j][i])
{
min = myArr[j][i];
}
}
sum += min;
}
return sum;
}
int main(void)
{
int arr[3][4] = { 0 };
int i = 0, j = 0, sum = 0;
printf("輸入陣列元素:\n");
for (i = 0; i < 3; i ++)
{
for (j = 0; j < 4; j++)
{
scanf("%d", &arr[i][j]);
}
}
sum = mArray(arr);
printf("%d\n", sum);
getchar();
return 0;
}
uj5u.com熱心網友回復:
樓上就是對的,int mArray(int myArr[][4])
{
int i = 0, j = 0, min = 0, sum = 0;
for (i = 0; i < 4; i++)
{
min = myArr[0][i];
for (j = 0; j < 3; j++)
{
if (min > myArr[j][i])
{
min = myArr[j][i];
}
}
sum += min;
}
return sum;
}這一段就是你題目要求的
變數名可以自己定
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/50767.html
標籤:C語言
上一篇:順序堆疊的清空問題
下一篇:回圈內的變數地址問題
