Запись и считывание в файл txt - C (СИ)
Формулировка задачи:
доброго времени суток, уважаемые программисты, я конечно жутко извиняюсь, за примитивный вопрос, но мне нужна помощь, очень! Суть состоит в том, что матрица меняет максимальный и минимальный элемент матрицы местами, НО она должна считывать элементы с файла txt и записывать конечный результат так же в txt, как это сообразить я не знаю, очень прошу, помогите!!
Решение задачи: «Запись и считывание в файл txt»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main ()
{
FILE *f,*g;
int i, j, m, n, v, minj=0,maxj=0,t,mini=0,maxi=0;
// printf (" Введите размер матрицы ");
// scanf ("%i %i", &n, &m);
int a[100][100], max, min;
/*
switch (v)
{
case 0:
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j] = rand()%200;
break;
case 1:
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
printf ("A[%i][%i]= ", i+1, j+1);
scanf ("%i", &a[i][j]);
}
}
*/
if (!(f=fopen("input.txt","r")))
return(-1);
else
{
fscanf (f,"%i %i",&n,&m);
for (i=0;i<n;i++)
for (j=0; j<m; j++)
fscanf (f,"%i",&a[i][j]);
fclose(f);
}
max=min=a[0][0];
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
printf ("%i ", a[i][j]);
if (max < a[i][j]) {max = a[i][j]; maxj=j;maxi=i;}
if (min > a[i][j]) {min = a[i][j];minj = j ;mini=i;}
}
printf ("\n");
}
system("PAUSE");
printf("\n\n%d\n%d\nmaxj=%d\nminj=%d\n",max,min,maxj,minj);
/* for (i=0; i<n; i++)// меняем
{
for (j=0; j<m; j++)
{
if (j==minj)
{
t=a[i][j]; a[i][j]=a[i][maxj]; a[i][maxj]=t;// здесь должно менять
}
}
for (j=0; j<m; j++)
printf ("%i ", a[i][j]);
printf ("\n");
}*/
t=a[maxi][maxj]; a[maxi][maxj]=a[mini][minj]; a[mini][minj]=t;// здесь должно менять
if (!(f=fopen("output.txt","w")))
return(-1);
else
{
fprintf(f,"%i %i ",n,m);
for (i=0;i<n;i++)
for (j=0; j<m; j++)
{
fprintf(f,"%i",a[i][j]);
if ((i!=n-1)||(j!=m-1)) fprintf(f," ");
}
fclose(f);
}
system("PAUSE");
}