用c语言计算二维阵列的最小值和最大值

用c语言计算二维阵列的最小值和最大值,c,arrays,multidimensional-array,C,Arrays,Multidimensional Array,此程序用于计算数组元素和的和、最小值和最大值 最大值是个问题,它总是不正确的 void main(void) { int degree[3][2]; int min_max[][]; int Max=min_max[0][0]; int Min=min_max[0][0]; int i,j; int sum=0; clrscr(); for(i=0;i<3;i++) { for(j=0;j&

此程序用于计算数组元素和的和、最小值和最大值
最大值是个问题,它总是不正确的

void main(void)
{
    int  degree[3][2];
        int min_max[][];
    int Max=min_max[0][0];
    int Min=min_max[0][0];
    int i,j;
    int sum=0;

    clrscr();
    for(i=0;i<3;i++)
    {
        for(j=0;j<2;j++)
        {
            printf("\n enter degree of student no. %d in subject %d:",i+1,j+1);
            scanf("%d",&degree[i][j]);
        }

    }


    for(i=0;i<3;i++)
    {
        for(j=0;j<2;j++)
        {
            printf("\n Student no. %d degree in subject no. %d is %d",i+1,j+1,degree[i][j]);

        }

    }


    for(i=0;i<3;i++)
    {
        sum=0;
        for(j=0;j<2;j++)
        {
            sum+=degree[i][j];

        }
        printf("\n sum of degrees of student no. %d is %d",i+1,sum);
        min_max[i][j]=sum;
        if(min_max[i][j] <Min)
        {
            Min=min_max[i][j];
        }
        else if(min_max[i][j]>Max)
        {
            Max=min_max[i][j];
        }




    }
    printf("\nThe minimum sum of degrees of student no. %d is %d",i,Min);
    printf("\nThe maximum sum of degrees of student no. %d is %d",i,Max);
    getch();

}
void主管道(void)
{
国际学位[3][2];
int min_max[];
int Max=min_Max[0][0];
int Min=Min_max[0][0];
int i,j;
整数和=0;
clrsc();

对于(i=0;i而言,问题在于在将任何值赋给Min_Max之前,您正在将Min和Max初始化为Min_Max[0][0],因此它们的内容实际上是未定义的


将赋值
Min=Min\u max[0][0]
max=Min\u max[0][0]
放在
scanf
调用之后。

问题是,在将任何值赋值给Min\u max之前,您正在将Min和max初始化为Min\u max[0][0],因此它们的内容实际上是未定义的

将赋值
Min=Min\u max[0][0]
max=Min\u max[0][0]
放在
scanf
调用之后。

printf("\nThe minimum sum of degrees is %d",i,Min);
printf("\nThe maximum sum of degrees  is %d",i,Max);
将打印
i
的唯一值,而不是
Min
Max
。请尝试以下操作:

printf("\nThe minimum sum of degrees for %d is %d",i,Min);
printf("\nThe maximum sum of degrees for %d is %d",i,Max);
线路

min_max[i][j]=sum;
对于
j
将始终有一个值2,因为它在
for
循环之外。另外,我不清楚为什么要将度数的部分和存储在min_max数组中?

printf("\nThe minimum sum of degrees is %d",i,Min);
printf("\nThe maximum sum of degrees  is %d",i,Max);
将打印
i
的唯一值,而不是
Min
Max
。请尝试以下操作:

printf("\nThe minimum sum of degrees for %d is %d",i,Min);
printf("\nThe maximum sum of degrees for %d is %d",i,Max);
线路

min_max[i][j]=sum;

对于
j
将始终有一个值2,因为它在
for
循环之外。此外,我不清楚为什么要将度数的部分和存储在min_max数组中?该数组甚至不会编译;发布您的实际代码。我尝试再次编写它。当我使用标记时,一些行会被删除。您只需要编写您的co缩进4个空格,将自动格式化为代码:)这甚至不会编译;发布您的实际代码。我尝试再次编写它。当我使用tag时,一些行被删除。您只需要编写缩进4个空格的代码,它将自动格式化为代码:)我想在min_max数组中存储部分度数和,因为我想在那里有度数和的最小和最大值没有理由在您编写的代码中定义min_max数组;min_max[i][j]当前仅用作
sum
的副本。是的,您的意思是如果(最大值的sumInitial值可以是0,最小值的initial值可以是2000000000。我想将度数的部分和存储在Min_Max数组中,因为我想得到度数之和的最小值和最大值当没有理由在您编写的代码中定义Min_Max数组时;Min_Max[i][j]当前仅用作
sum
的副本。是的,你的意思是我应该写if(sum),Max的初始值可以是0,Min的初始值可以是2000000000。