这是我写的程序,不知道哪里错了,麻烦改改。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
void main()
{ int a[5][6],i,j,s,k,n,b[5][6],c[5],m,iol,jol;
float d[5][6];
srand(time(0));
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
{ s=rand();
k=pow(-1,s);
n=rand()%90+0;
a[i][j]=k*n ;
}
}
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
printf("%d ",a[i][j]);
printf("\n");
}
printf("变形后\n");
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
b[i][j]=abs(a[i][j]);
}
for(i=0;i<5;i++)
m=b[i][0];
{for(j=0;j<6;j++)
if(b[i][j]>m)
{ m=b[i][j];
iol=i;
jol=j;
}
d[i][j]=a[i][j]/a[iol][jol];
}
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
printf("%.1f ",d[i][j]);
printf("\n");
}
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
void main()
{ int a[5][6],i,j,s,k,n,b[5][6],c[5],m,iol,jol;
float d[5][6];
srand(time(0));
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
{ s=rand();
k=pow(-1,s);
n=rand()%90+0;
a[i][j]=k*n ;
}
}
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("变形后\n");
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
b[i][j]=abs(a[i][j]);
}
for(i=0;i<5;i++)
{ iol=jol=0;
m=b[i][0];
for(j=0;j<6;j++)
if(b[i][j]>m)
{ m=b[i][j];
iol=i;
jol=j;
}
}
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
{d[i][j]=(float)a[i][j]/a[iol][jol];
printf("%6.1f",d[i][j]);
}
printf("\n");
}
}
感觉这样做不对啊,你看结果里第二行,第三个都有-1.1了。。。。
感觉我这样写它整个二维数组除以的都是同一个数,而不是每行的最大数,而且感觉这同一个数就是最后一行最大的那个。
这回改好了:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
void main()
{ int a[5][6],i,j,s,k,n,b[5][6],c[5],m,iol,jol;
float d[5][6];
srand(time(0));
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
{ s=rand();
k=pow(-1,s);
n=rand()%90+0;
a[i][j]=k*n ;
}
}
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("变形后\n");
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
b[i][j]=abs(a[i][j]);
}
for(i=0;i<5;i++)
{ iol=i; jol=0;
m=b[i][0];
for(j=0;j<6;j++)
if(b[i][j]>m)
{ m=b[i][j];
jol=j;
}
for(j=0;j<6;j++)
d[i][j]=(float)a[i][j]/m;
}
for(i=0;i<5;i++)
{ for(j=0;j<6;j++)
printf("%6.1f",d[i][j]);
printf("\n");
}
}