注册 登录
编程论坛 C语言论坛

利用数组求最小值出错

qq68677589 发布于 2020-02-22 11:31, 2162 次点击
/*利用数组求最小值*/
#include<stdio.h>
#include<stdlib.h>
int main() {
    int ch1[3][4]= {3,2,4,6,7,5,8,99,77,44};
    int i,j,min,list=0,hang=0;
    min=ch1[0][0];
    for(i=0; i<3; i++)
        for(j=0; j<4; j++) {
            if(ch1[i][j]<min) {
                min=ch1[i][j];
                hang=i;
                list=j;
            }
        }
    printf("min=%d hang=%d list=%d\n",min,hang,list);
    system("pause");
    return 0;
}

程序测试如下:min=0 hang=2 list=2
5 回复
#2
qq686775892020-02-22 11:52
此题正确,数组认识不够,谢谢各位大佬支持
#3
叶纤2020-02-22 12:08
我的代码只适合没有0的情况,如果含有0就没办法了
当然最好的办法就是分成2行5列的数组

[此贴子已经被作者于2020-2-22 18:16编辑过]

#4
叶纤2020-02-22 17:59
程序代码:


#include<stdio.h>
//using namespace std;
int main()
{
    int ch[3][4]= {3,2,4,6,7,5,8,99,77,44};
    int sun = *(*ch);
    int x = 0, y = 0, i, j;
    for (i = 0; i < 3; ++i)
    {
        for (j = 1; j < 4 & ch[i][j] != 0; ++j)
        {
            if (sun > ch[i][j])
            {
                sun = ch[i][j];
                x = i;
                y = j;
            }
        }
    }
printf("min=%d hang=%d list=%d\n",sun,x+1,y+1);
    return 0;
}


#5
吹水佬2020-02-22 19:33
int ch1[3][4]= {3,2,4,6,7,5,8,99,77,44};
ch1[2][2], ch1[2][3] 未定义
程序测试如下:min=0 hang=2 list=2 不确定

#include <stdio.h>
int main()
{
    int ch[3][4]= {3,2,4,6, 7,5,8,99, 77,44,1,2};
    int *p=(int *)ch, i=0,j=0;
    for (i=1; i<12; ++i)
    {
        if (p[i] < p[j])
            j = i;
     }
    printf("\n min=%d hang=%d list=%d\n",p[j],j/4,j%4);
    return 0;
}
#6
qq686775892020-02-23 09:16
回复 4楼 叶纤
谢谢,感激不尽!
1