Top.Mail.Ru
Ответы

Программирование на Си

Доброго времени суток !
Помогите пожалуйста, нужно разделить функцию на несколько функций
---------------------------------------------------------------------------------------------
#include
#include
#include
#include
#include

int main()
{
setlocale(LC_ALL, "Rus");
float x, sum = 0, row, col, nrow, ncol;
char spare[256];
FILE* readfile;
FILE* copyfile;
readfile = fopen("file.txt", "r");
copyfile = fopen("file2.txt", "w");
fscanf(readfile, "%f %f", &nrow, &ncol);
printf("%f %f", nrow, ncol);
for (row = -1; row < nrow; row++)
{
fgets(spare, sizeof(spare), readfile);//puts(spare);
if (row != -1)
{
char* p = NULL;
p = strtok(spare, " ");
while (p)
{
x = atoi(p);
printf("\nx = %f", x);
sum += x * x;
printf("\nsum = %f", sum);
p = strtok(NULL, " ");
}
sum = sqrt(sum);
printf("\n\nSum после извлечения корня: %f", sum);
fprintf(copyfile, "%f\n", sum);
sum = 0;
}
}
fclose(readfile);
fclose(copyfile);
return 0;
}

Дополнен

#include
#include
#include
#include
int main()
{
setlocale(LC_ALL, "Rus");
float x, sum = 0, row, col, nrow, ncol;
char spare[256];
FILE* readfile;
FILE* copyfile;
readfile = fopen("file.txt", "r");
copyfile = fopen("file2.txt", "w");
fscanf(readfile, "%f %f", &nrow, &ncol);
printf("%f %f", nrow, ncol);
for (row = -1; row<nrow; row++)
{
fgets(spare, sizeof(spare), readfile);//puts(spare);
if (row != -1)
{
char* p = NULL;
p = strtok(spare, " ");
while (p)
{
x = atoi(p);
printf("\nx = %f", x);
sum += x*x;
printf("\nsum = %f", sum);
p = strtok(NULL, " ");
}
sum = sqrt(sum);
printf("\n\nSum после извлечения корня: %f", sum);
fprintf(copyfile, "%f\n", sum);
sum = 0;
}
}
fclose(readfile);
fclose(copyfile);
return 0;
}

Дополнен

#include "stdio.h"
#include "stdlib.h"
#include "locale.h" использовал (") просто для сайта, ибо другой знак не воспринимает
#include "math.h"
#include "string.h"
int main()
{
setlocale(LC_ALL, "Rus");
float x, sum = 0, row, col, nrow, ncol;
char spare[256];
FILE* readfile;
FILE* copyfile;
readfile = fopen("file.txt", "r");
copyfile = fopen("file2.txt", "w");
fscanf(readfile, "%f %f", &nrow, &ncol);
printf("%f %f", nrow, ncol);
for (row = -1; row<nrow; row++)
{
fgets(spare, sizeof(spare), readfile);//puts(spare);
if (row != -1)
{
char* p = NULL;
p = strtok(spare, " ");
while (p)
{
x = atoi(p);
printf("\nx = %f", x);
sum += x*x;
printf("\nsum = %f", sum);
p = strtok(NULL, " ");
}
sum = sqrt(sum);
printf("\n\nSum после извлечения корня: %f", sum);
fprintf(copyfile, "%f\n", sum);
sum = 0;
}
}
fclose(readfile);
fclose(copyfile);
return 0;
}

По дате
По Рейтингу
Аватар пользователя
Просветленный

А зачем? Всё и так органично! Сначала читается количество строк и колонок матрицы я так понял, потом читаются сами данные, извлекается корень и записывается сразу же в файл... Это быстро и правильно. А так придётся создать промежуточный буфер для чтения, потом анализ и модификация данных и потом уже запись. Скажи преподу овчинка выделки не стоит