1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

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

  1. kokerka

    kokerka Гость

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

    я написал часть проги считывающей из файла матрицу а вот как реализовать операции со столбцами не знаю.
    Код:
    #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 Гость

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

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