[c]матрица в файле

Тема в разделе "Общие вопросы по С и С++", создана пользователем kokerka, 7 дек 2008.

  1. kokerka

    kokerka Гость

    Помогите пожалуйста. Нужно написать программу на Си: имеется текстовый файл в котором есть матрица(не обязательно квадратная) с числами с плавующей точкой. Пользователь вводит номера столбцов и операции с ними, и результирующий столбец сохраняется в другом текстовом файле. Возможно что пользователь просто напишет номера столбцов без операций

    я написал часть проги считывающей из файла матрицу а вот как реализовать операции со столбцами не знаю.
    Код (Text):
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>

    int main()
    {
    FILE *fp;
    int index = 0, i = 0, j = 0, M = 0, N = 0;
    char str[10] = {0};
    double matrix[30][30] = {0};
    double value = 0.0;
    char ch;

    if((fp = fopen("C:\\file.txt", "r"))==NULL)
    {
    printf("Error\n");
    exit(1);
    }

    while(!feof(fp))
    {
    ch = getc(fp);
    if(isdigit(ch))
    {
    while(!isspace(ch) && ch!=EOF)
    {
    str[index++] = ch;
    ch = getc(fp);
    }
    value = atof(str);
    matrix[i][j++] = value;
    M = i; N = j-1;
    if(ch=='\n'){ ++i; j = 0; }
    memset(str, '\0', 10);
    }
    index = 0;
    }

    /*вывод на экран*/
    for(i = 0; i <= M; ++i)
    {
    for(j = 0; j <= N; ++j)
    {
    printf("%g\t", matrix[i][j]);
    }
    printf("%c", '\n');
    }

    fclose(fp);
    system("pause");
    return 0;

    }
     
  2. Yason

    Yason Гость

    1. Получаем от пользователя номера столбцов (например, column1 и column2), проверяем, есть ли такие в матрице.
    2. Проверяем, указал ли пользователь операцию, если нет - ругаемся и выходим.
    3. Объявляем массив result длиной (количество строк в матрице) - в него будем складывать результат.
    4.
    Код (Text):
    for (int i=0; i<N; i++)
    result[i] = evaluate(matrix[i, column1], matrix[i, column2], operation)
    где evaluate() - функция, которая проводит операцию operation над переданными числами и возвращает результат. Внутри evaluate() -- простой switch на 4 арифметических действия.
    5. Записываем result в файл.
     
Загрузка...

Поделиться этой страницей