输出数组中最小值

来源:百度知道 编辑:UC知道 时间:2024/05/13 03:56:39
void main()
{int [4][4]={{9,80,205,40},{90,-60,196,1},{210,-3,101,89},{45,54,156,7}};
int i,j,t,k,l;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(j!=3)
if(a[i][j]<a[i][j+1])
t=a[i][j];
k=i;
l=j;
else
t=a[i][j+1];
k=i;
l=j+1;
else
if(i==3&&j==3)
goto an;
else
if(a[i][j]<a[i+1][j-2])
t=a[i][j];
k=i;
l=j;
else
t=a[i+1][j-2];
k=i+1;
l=j-2;
an:printf("a[%d][%d]=%d",k,l,t);}
主要问题是里面总出现3个(misplace else),到底是什么问题,还有如果这个程序能运行能不能得到正确答案。还有什么算法错误,请高手指教,我刚入门而已,顺便可以的话给各较简便的程序。C语言的。

你这样写的话肯定得到正确的结果,for语句和if语句的结束都不清楚。else 更是没有和 if 匹配在一起
简便的如下:
#include <stdio.h>

void main()
{
int a[4][4]={{9,80,205,40},{90,-60,196,1},{210,-3,101,89},{45,54,156,7}};
int i,j,k,l;
int t = a[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j] < t)
{
t = a[i][j];
k = i;
l = j;
}
}
}
printf("a[%d][%d]=%d",k,l,t);
}