计算c中二维数组的最小值和最大值

标签 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<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();

}

最佳答案

问题是您在将任何值分配给 min_max 之前将 Min 和 Max 初始化为 min_max[0][0],因此它们的内容实际上是未定义的。

将赋值 Min=min_max[0][0]Max=min_max[0][0] 放在 scanf 调用之后.

关于计算c中二维数组的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2854961/

相关文章:

c - 如何在 C 中的结构中存储可变长度数组

ruby - 如何映射嵌套数组

arrays - 在 Go 中附加 2 维 slice

将 wchar_t 转换为 CFStringref

c - 打印出字符串的整数表示时 Scanf 和 strtol 的属性

c - C(32 位)中的舍入问题

PHP - 回显 'Array' 错误

java - 排序数组中最右最小元素的索引

ios - 如何在 CoreML 中访问 MLMultiArray 内的元素

c - Linux 中如何解决库间依赖关系?