Консультация № 165776
24.04.2009, 19:53
0.00 руб.
0 0 0
Здравствуйте, уважаемые эксперты! Прошу помочь мне переделать программу на си (не си++).
Текст задания: Дана действительная матрица A[i j]=1,.,.,.,n. Получить действительную матрицу B[i j]=1,....,n, значения элемента B[i][j] определяются как среднее арифметическое минимальнoго из элементов, расположенных выше j-й строки(включительно) и максимального из элементов, расположенных справа от i-го столбца(включительно)

привожу текст выполненной программы, который нужно скорректировать таким образом, что там должно быть динамическое выделение памяти и были использованы указатели
Код:

include <stdio.h>
#include <conio.h>
void main(void) {
int a[10][10], i,max=a[0][0], min=a[0][0], j, k,m;
float sa, b[10][10];
FILE*Op;
FILE*Ex;
Op=fopen("in1.txt","r");
Ex=fopen("out1.txt","w");
for(i=0;i<10;i++){
for(j=0;j<10;j++){
fscanf(Op,"%d",&a[i][j]);
printf(" %d", a[i][j]);
};
printf("\n");
};
i=0;
j=0;
do{
max=a[0][i];
for (k=0; k<10; k++)
for (m=i; m<10; m++)
if(a[k][m]>max) max=a[k][m];
printf ("pravee stolbca %d(%d po schetu) max=%d\n", i, i+1, max);

min=a[j+1][0];
for (k=j;k<=j && k<10; k++)
for (m=0; m<10; m++)
if(a[k][m]<min) min=a[k][m];
printf ("vyshe stroki %d(%d po schetu) min=%d\n", j, j+1, min);
b[i][j]=((min+max)/2.);
printf("sred arif: %.1f\n", b[i][j]);
fprintf(Ex, "%.1f ", b[i][j]);
if(i>=9){
fprintf(Ex,"\n");
i=0;
j++;
} else i++;
} while(j!=10);
fclose(Op);
fclose(Ex);
return 0;
}

Заранее спасибо!

Обсуждение

Форма ответа