Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600

Работа с динамическими массивами

31.03.2017, 21:07. Показов 2881. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, коллеги!

В связи с производственной необходимостью столкнулся с проблемой кодирования на Сях под linux. Честно признаюсь - ни в том ни в другом ни разу не работал. Знал что есть, но сталкиваться не приходилось.

Итак, история вопроса (задачи):

есть некий прибор, который измеряет физическую величину, допустим V. Количество точек измерения ограничено максимумом (4096), но вполне конкретно в ходе каждого измерения => необходимо применять динамический массив, чтобы не таскать за собой кучу пустышек, если, например, количество значений =100. Тип измеряемых значений - Double.

ЗАДАЧА:
1) Преобразовать массив длинной 4096 в массив конкретной длинны N;
2) Вывести значения в файл на диске (в формате, например "%0.3f\n")

Подсобите, пожалуйста с кодом.
Примеры гуглил, в основном все про тип integer. Про Double информации недостаточно для понимания (мне).

ЗЫ: Свой говнокод проверяю в студии.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2017, 21:07
Ответы с готовыми решениями:

Работа с динамическими массивами
Добрый день! Написал программу на си, которая рисует окружность в псевдографике: // Clocks.cpp : Defines the entry point for the...

Работа с динамическими массивами
Динамические массивы

Работа с динамическими массивами
Создать одномерный динамический массив произ-вольного размера. Ввести значения элементов массива. Выпол-нить задание в соответствии с...

28
Заблокирован
31.03.2017, 22:57
Студворк — интернет-сервис помощи студентам
stdio.h подключен? Полный код давай.
1
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
31.03.2017, 23:19  [ТС]
конечно

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include <malloc.h>
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
    double *ptrarray;
    int n, i;
    printf("Enter count: ");
    scanf("%d", &n);
     ptrarray = malloc(n * sizeof(double));
    for (i=0; i<n; ++i)
    {
        printf("Элемент[%d] = ", i);
        scanf("%lf", ptrarray + i);
    };
 
    FILE *file;
    file=fopen("c:\demo.txt", "w+");
    for (i = 0; i < n; ++i)
        {printf("%0.3lf\n", ptrarray[i]);
        //fprintf(fp,"%lf\n",ptrarray[i]);
    };
    getchar();getchar();
    fclose(file);
    return 0;
}
Добавлено через 53 секунды
ругается на строки 21, 22, 28

Добавлено через 1 минуту
точнее, вперед всего на 21 строку. остальное - следствие.
0
Заблокирован
31.03.2017, 23:23
Все нормально работает:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
    double *ptrarray;
    int n, i;
    printf("Enter count: ");
    scanf("%d", &n);
    ptrarray = malloc(n * sizeof(double));
    for (i=0; i<n; ++i)
    {
        printf("Элемент[%d] = ", i);
        scanf("%lf", ptrarray + i);
    };
 
    FILE *fp;
    fp=fopen("./demo.txt", "w+");
    for (i = 0; i < n; ++i)
        {printf("%0.3lf\n", ptrarray[i]);
        fprintf(fp,"%lf\n",ptrarray[i]);
    };
    getchar();getchar();
    fclose(fp);
    return 0;
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
./a.out 
Enter count: 3
Элемент[0] = 1
Элемент[1] = 3
Элемент[2] = 45646.43
1.000
3.000
45646.430
 
$ cat demo.txt 
1.000000
3.000000
45646.430000
Память только освобождать еще не забывай.
0
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
31.03.2017, 23:24  [ТС]
разрыв шаблона....((((

Ошибка 2 error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
0
Заблокирован
31.03.2017, 23:25
Цитата Сообщение от Winney Посмотреть сообщение
Ошибка 2 error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
С ошибками студии разбирайся сам. Подключил precompiled headers, сам виноват. Хотя тут и разбираться не с чем, компилятор и так сказал, что надо сделать. Но я до сих пор не пойму, зачем ты пишешь в студии.
0
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
31.03.2017, 23:25  [ТС]
Цитата Сообщение от nimazzzy Посмотреть сообщение
Память только освобождать еще не забывай.
Да это потом. КОгда до реальных массивов дело дойдет. Мне щас принцип вкурить надо.
0
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
31.03.2017, 23:28  [ТС]
Цитата Сообщение от nimazzzy Посмотреть сообщение
Подключил precompiled headers, сам виноват.
Отключил.

Один фик.
Ошибка 1 error C2275: FILE: недопустимое использование этого типа в качестве выражения.
0
Заблокирован
31.03.2017, 23:30
Лучший ответ Сообщение было отмечено Winney как решение

Решение

Перенеси
FILE *fp;
в начало функции попробуй. gcc линуксовый позволяет такую вольность, как объявление в середине кода. VC++, вероятно, нет. У него там, может, все еще 90.
1
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
31.03.2017, 23:38  [ТС]
nimazzzy, спасибо, понял. Буду пробовать на рабочей недели в линухе.
Надеюсь разберусь теперь. Проблема была видимо в моем понимании указателей и операций с ними.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2017, 23:38
Помогаю со студенческими работами здесь

работа с динамическими массивами
Всё что нужно, это рассчитать размерность массива через функцию, но в main я получаю, а если передаю массив в функцию то получаю 1, как...

Работа с динамическими массивами
Помогите пожалуйста с программой,это должна быть одна программа.. 1)Как написать процедуру для заполнение двумерного массива случайными...

Работа с динамическими массивами
Можно ли так делать? type TMass = array of Integer; function Funk1(a:TMass):TMass; var c:TMass; i:Integer; begin

Работа с динамическими массивами
Здравствуйте. Помогите, пожалуйста, написать программу 1. Использующую потоки cout и cin для ввода/вывода. Программа должна использовать...

Работа с динамическими массивами
Ошибка чтения данных возникает при работе с динамическими массивами: int *mask= new int ; long double **A= new long ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru