求解此C语言编程题 要详细过程 格式工整 稍带讲解再加150分
发布网友
发布时间:2024-09-30 04:49
我来回答
共5个回答
热心网友
时间:2024-10-16 23:41
#include <stdio.h>
void min2d(int data[][3],int m,int n)
{
int i,j,min;
min=data[0][0];
for (i=0;i<m;i++)\\控制行循环
{
for (j=0;j<n;j++)\\控制列循环
{
if (min>data[i][j])\\当前元素与最小值比较,若小于当前最小值,则将当前元素赋给最小值
{
min=data[i][j];
}
}
}
printf("%d",min);
}
void main()
{
int data[2][3]={30,10,76,4,22,17};
min2d(data,2,3);
}
热心网友
时间:2024-10-16 23:42
void min2d(int data[][3], int m, int n)
{
int i, j, min;
min = data[0][0];
//min记录最小值
//二维数组,可以看成m行,n列的矩阵:这里矩阵为: 30 10 76
// 4 22 17
for(i = 0; i < m; i++)//i表示第几行
for(j = 0; j < n ; j++)//j代表第几列,这里两个循环则会扫描整个二维数组所有元素
if(data[i][j] < min)//如果某次得到的二维数组的元素的值小于min,则min应该变为得到的新值
min = data[i][j];
printf("%d\n", min);
}
热心网友
时间:2024-10-16 23:42
void min2d(int data[][3], int m, int n)
{
int i, j, min;
min = data[0][0];
for(i = 0; i < m; i ++)/* 两层循环遍历data数组的元素 */
{
for(j = 0; j < n; j ++)
{
if(data[i][j] < min)/* 遇到更小的元素时,更新min的值 */
{
min = data[i][j];
}
}
}
printf("%d\n", min); /* 最后输出最小元素到控制台 */
}追问哥 为什么 这里是i < m;j < n;而不是i<2 j<3呢?
追答因为你这里的变量m和n没有说明是什么用的,我就把它当成是数组的维数了。
当然,如果你的数组维数固定是2*3的话,那完全可以用i<2 j<3代替。
不过这样你的这段函数就只能用于处理大小固定为2*3的数组了
热心网友
时间:2024-10-16 23:43
for(i=0;i<m;i++) //行循环变量
{
for(j=0;j<n;j++) //列循环变量
{
if(min>data[i][j]) //如果当前数组的值小于min,进入if语句
{
min=data[i][j]; //把data[i][j]赋值给min
}
}
}
printf("The min number is %d",min); //输出最小元素追问哥 为什么 这里是i < m;j < n;而不是i<2 j<3呢?
追答因为你是在函数min2d中,不能确定主函数中数组的下标是多少。所以函数min2d的参数中有m,n。可以替代2,3.
热心网友
时间:2024-10-16 23:44
for(i=0;i<2;i++)
{
for( j=0;j<3;j++)
{
if(min>data[i][j])
min=data[i][j];
}
}
printf("数组中最小数为%d\n",min);