Форум программистов, компьютерный форум 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
20.12.2011, 16:37  [ТС]     функции (массивы)
Все теперь выводит количество отрицательных и сумму, как же найти B?

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
97
#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,sum = 0;
        for (i = 0; i < size; i++) 
                if (arr[i] < 0) k+=1; 
        cout<<"Количество отрицательных элементов в массиве ="<<k<<endl;
        //printf ("n\Количество отрицательных=%lf",k); 
        
        
        for (i = 0; i < size; i++) 
                if (arr[i] < 0) sum+=arr[i];  
        cout<<"Сумма отрицательных элементов в массиве ="<<sum<<endl;
        
}
 
 
 
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);
 
       
 
        free(A);
        free(B);
        free(C);
        _getch();
        return 0;
}
 
Текущее время: 04:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru