Форум программистов, компьютерный форум CyberForum.ru

функции (массивы) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Доступ к полям класса http://www.cyberforum.ru/cpp-beginners/thread410926.html
Имеет список list с объектами класса zapis list<zapis> list как мне получить значение поля класса, например поле Number
C++ [C++] Даны целые числа а1,....,аn... Нужна срочная помощь в решении задач! Я новичек в С++ и почти не шарю в нем.... Помогите плиз.. Вот задачи: 1) Даны целые числа а1,....,аn. Все члены последовательности с четными номерами, предшествующие первому по порядку члену со значением max(a1,...,an), домножить на max(a1,...,an). 2)Даны натуральное число m, целые числа a1,...,am и челочисленная квадратная матрица порядка m. Строку с... http://www.cyberforum.ru/cpp-beginners/thread410917.html
C++ Стандартные потоки
Пишу такой код #include <iostream> #include <thread> using namespace std; void f1() { for (int i=1;i<100;i+=2) { cout << i << " "; }
C++ Перевод арабских чисел в римские !
помогите решить задачу : Дан текстовый файл ,в нём записаны числа через пробелы , используя этот файл составить программу для перевода арабских чисел( которые в этом текстовом файле) в римские . Язык СИ обычный
C++ Проверка правильности расстановки круглых скобок. http://www.cyberforum.ru/cpp-beginners/thread410899.html
Дано задание - проверить расстановку скобок с помощью стека. Тему на занятиях пропустил полностью, а в гугле находил настолько различные результаты, что не смог сориентироваться. Не могли бы вы объяснить и на примерах показать основы работы со стеком? Объявление стека, добавление, удаление элемента и прочее? Вопрос не лучший, но все что нашел в гугле - "push" и "pop". А как их использовать -...
C++ Наследование, базовые классы и производные классы Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных классов.Первый базовый класс-средство передвижения.Поля в нем- вес,мощность,скорость. Во втором базовом классе описать страны-производители.Производные классы-автомобиль.Производные классы второго поколения- спортивный автомобиль,грузовой автомобиль. #include... подробнее

Показать сообщение отдельно
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
18.12.2011, 23:45     функции (массивы)
Даны 3 массива найти количество отрицательных элементов каждом массиве и суммы отрицательных элементов в этих массивах и посчитать:
B=((KB+KC)*SA)/((SC+SB)*KA)
Собственно код предоставлен, нужна помощь по выводу количества отрицательных элементов и алгоритм по поиску сумм отрицательных элементов, а также их вывода.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <locale.h>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
//using namespace std;
 
//функция получения массива arr из строки файла fl и записи размера получ. массива в перем. size
int* getArray(int* arr, FILE* fl, int& size) //int& обеспечивает передачу пер-нной размера массива по ССЫЛКЕ (для возм. изменения)
{
    int tint = 0;
    char tchar = ' ';
    do //считываем строку в массив
    {
        tchar=getc(fl); // посимвольно
        if (!feof(fl) && tchar!=' ' && tchar!='\n') { //если не конец файла и считанный символ - не пробел и не перенос строки,
            tint = tint*10 + (tchar - 48);  // то продолжаем формировать число
        } 
        else                            // иначе:
            {
                arr = (int*)realloc(arr,(++size)*sizeof(int)); // увеличиваем размер массива на одну ячейку размера int
                if (!arr) { return arr; } // проверка на корректное выделение памяти
                arr[size-1] = tint; // и записываем считанное число в выделенную ячейку
                tint = 0;
            }
    } while(!feof(fl) && tchar!='\n'); //цикл продолжается, пока не доходим до конца строки или не заканчивается файл
 
    return arr;
}
 
//функция некоторых действий с массивом arr
void doCalc(int* arr, int size)
{
    {int i, k = 0;
    for (i = 0; i < size; i++) 
        if (arr[i] < 0) k+=1; 
    printf ("n\Количество отрицательных=%lf",k); 
    }
    return;
}
 
 
 
void showArr(char name, int* arr, int size)
{
    printf("\nМассив %c [%i] :\n", name, size);
    for (int i = 0; i < size; i++) printf("%i\t", arr[i]);
}
 
 
 
int main() {
    FILE* f;
    int* A = (int*)calloc(0,sizeof(int));
    int* B = (int*)calloc(0,sizeof(int));
    int* C = (int*)calloc(0,sizeof(int));
    int i = 0, a = 0, b = 0, c = 0;
    char path[256];
    
    setlocale(LC_ALL,"Rus");
    printf("Введите путь к файлу: ");
    scanf("%s", &path);
    f = fopen(path, "r"); // открываем файл
    if (!f) { printf("Неверный путь!"); _getch(); return -1; } //проверка правильного открытия файла
 
    A = getArray(A, f, a); //передаем 3 пар-тра: A - указ. на массив А, f - указатель на файл, a - размер массива
    if (!A) { printf("Ошибка выделения памяти!!!!\n"); fclose(f); free(A); free(B); free(C); _getch(); return -1; }
    B = getArray(B, f, b);
    if (!B) { printf("Ошибка выделения памяти!!!!\n"); fclose(f); free(A); free(B); free(C); _getch(); return -1; }
    C = getArray(C, f, c);
    if (!C) { printf("Ошибка выделения памяти!!!!\n"); fclose(f); free(A); free(B); free(C); _getch(); return -1; }
 
    fclose(f);
 
    printf("\nИсходные массивы :");
    showArr('A', A, a); //вывод исходных массивов
    showArr('B', B, b);
    showArr('C', C, c);
 
    doCalc(A, a); //проводим нужные действия с массивами
    doCalc(B, b);
    doCalc(C, c);
 
    //printf("\n\nЭлементы с чётными индексами заменены на макс. эл-ты массивов :");
    //showArr('KA', A, a); //вывод измененных массивов
    //showArr('KB', B, b);
    //showArr('KC', C, c);
    
 
    free(A);
    free(B);
    free(C);
    _getch();
    return 0;
}
Добавлено через 38 минут
P.S. Вопрос не по алгоритму, а по правильному выводу параметров из функций.

Добавлено через 20 минут
Ребята прошу небольшой помощи

Добавлено через 15 минут
В файле заданы три массива

Добавлено через 12 минут
123 24621 234 123 346 123 3 2 46 12
234 35 23 658 24 235 579 34 32 13
12 24 1 52 3

Добавлено через 56 минут
_____

Добавлено через 49 минут
может есть какие нибудь идеи?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru