Ребята, помогите, не могу понять почему не получается. Задача в следующем: читает квадратную матрицу из файла, надо менять местами ряды и колоны чтоб получить по главной диагонали, когда i=j числа в убывающем порядке. Вот что я сделал:
| Код | #include <stdio.h> int a[20][20]; int i,j,n; void sch_lin(int x,int y) { int aux;
for (j=0;j<n;j++) { aux=a[x][j]; a[x][j]=a[y][j]; a[y][j]=aux; } } void sch_col(int x,int y) { int aux;
for (i=0;i<n;i++) { aux=a[i][x]; a[i][x]=a[i][y]; a[i][y]=aux; } } void main(void) { FILE *file1; FILE *file2; int max;
file1=fopen("pr6.in","r");
i=0;j=0;n=0; fscanf(file1,"%d\n",&n); for (i=0;i<n;i++) { for (j=0;j<n;j++) { fscanf(file1,"%d",&a[i][j]); } fscanf(file1,"\n"); } fclose(file1); file2=fopen("pr6.out","w"); for (i=0;i<n;i++) { for (j=0;j<n;j++) { fprintf(file2,"%d ",a[i][j]); } fprintf(file2,"\n"); } fprintf(file2,"\n"); for (i=0;i<n;i++) { max=a[i][i]; for (j=i;j<n;j++) { if (a[j][j]>max) max=a[j][j]; } for (j=i;j<n;j++) { if (a[j][j]==max) { sch_lin(i,j); sch_col(i,j); } } }
for (i=0;i<n;i++) { for (j=0;j<n;j++) { fprintf(file2,"%d ",a[i][j]); } fprintf(file2,"\n"); } fclose(file2);
}
|
Заранее спасибо. |