作业的奇怪问题~!
作业:求3X4的矩阵的最大元素及其行、列号,并标出其位置:3 38 6 45
28 5 84 7
22 44 19 29
变成:
0 0 0 1
0 0 1 0
0 1 0 0
下面是我写的程序:
void max(int a[3][4],int b[3][4])
{
int i,j,row=0,colum=0;
printf("\nmax number is:\n");
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
{
if(a[row][colum]<a[i][j])
{row=i;colum=j;}
}
a[row][colum]=1; /*如果没有这句话,结果就不是要求的。本来是1,4/2,3/3,2最大。没了这句答案3,2就不对了*/
printf("a[%d][%d]",row+1,colum+1);
b[row][colum]=1;
}
printf("\n\nB array is:\n");
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
printf("%5d",b[i][j]);
}
}
main()
{
int a[3][4]={3,38,6,45,28,5,84,7,22,44,19,29};
int i,j,b[3][4]={0,0,0,0,0,0,0,0,0,0,0,0};
printf("A array is:\n");
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<4;j++)
printf("%5d",a[i][j]);
}
max(a,b);
}
结果是可以出来了,可是有点问题。请看上面!
暂时的问题。大家还有什么可以改进的么?总觉得自己写的程序好复杂!