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

Объяснить и подробно прокомментировать фрагмент кода (функции и массивы) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При наборе символов криво ошибка выводится http://www.cyberforum.ru/cpp-beginners/thread1657276.html
#include "stdafx.h" #include<conio.h> #include<iostream> #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<ctype.h> using namespace std; int a, b, c;
C++ Вычислить сумму ряда Здравствуйте форумчане. 1+2+4+8+...+2^10 Сделал так Код: #include <iostream> #include<cmath> using namespace std; int main() { int a,b, pow, sum, i; http://www.cyberforum.ru/cpp-beginners/thread1657266.html
Составить программу, позволяющую сформировать текстовый файл-таблицу возведения 2 в степень n C++
Здравствуйте люди добрые, помогите решить задачки на С++, мне очень надо скоро их будет сдавать. Помогите, кто сможет, пожалуйста! 1.Составить программу, позволяющую сформировать текстовый файл-таблицу возведения 2 в степень n, где n задаётся в консоли (от 1 до 10000). 2.Открыть файл через командную строку, если название файла не было прописано, то предложить пользователю ввести его в консоли....
C++ Найти площадь правильного многоугольника (как сделать, чтобы тангенс считался в градусах?)
Передающиеся параметры: а-длина стороны,н - количество сторон. Проблеба в том что тангенс считает в радианах из-за этого получается не правильный ответ. А должно быть в градусах. float __stdcall area(float a, float n){ float S = n*pow(a,2)/4*tan(360/2*n); return S; } Добавлено через 1 минуту
C++ Найти причины и способы устранения ошибок в коде (структуры, файловый ввод/вывод) http://www.cyberforum.ru/cpp-beginners/thread1657220.html
#include <iostream> #include <fstream> #include <string> using namespace std; struct avto { string mark; string cost; string year; string cvet;
C++ Преобразование одного массива данных в другой Как сделать преобразование одного массива данных в CSV файлах? Пример считываем 12 столбец файла (в нём записаны числа - 1,2,3,4,5 и т.д.), мне необходимо преобразовать этот массив данных в A, B, С, D, E и т.д . Как это лучше всего сделать? СSV файлов будет много и желательно чтобы программа как можно быстрее и эффективнее обрабатывала эти файлы и преобразовывала в нужный формат, буду рад любому... подробнее

Показать сообщение отдельно
IIapa3uT
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 24

Объяснить и подробно прокомментировать фрагмент кода (функции и массивы) - C++

07.02.2016, 22:52. Просмотров 287. Ответов 5
Метки (Все метки)

Изучаю C++ 2 дня. Какие задачи в институте сделал сам, какие то скопировал. Данную задачу нашел на просторах интернета.
Меня интересуют именно те строки которые выше (int _tmain) Некоторые формулировки мне понятны, но массивы и работа с ними для меня глухой лес.

Сама задача:
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
•количество элементов массива, лежащих в диапазоне от А до В;
•сумму элементов массива, расположенных после максимального элемента.
•Упорядочить элементы массива по убыванию модулей элементов.

Код программы (наладил, всё работает, ошибок нет). Заранее всем благодарен.
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
#include "stdafx.h"
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
 
int number_within_the_limmmits(int *arr, size_t arr_sz, int left, int right){
    if (left>right){
        int tmp_i = left;
        left = right;
        right = tmp_i;
    }
    int number_whithin = 0;
    for (size_t i = 0; i < arr_sz; ++i)
        if (arr[i] >= left && arr[i] <= right) number_whithin++;//включая границы
    return number_whithin;
}
 
int ind_of_max_element(int *arr, size_t arr_sz){
    int ind_of_max = 0;
    int max_element = arr[ind_of_max];
    for (size_t i = 1; i < arr_sz; ++i){
        if (max_element < arr[i]){
            max_element = arr[i];
            ind_of_max = i;
        }
    }
    return ind_of_max;
}
 
 
int summ_arr_after_max(int *arr, size_t arr_sz){
    int ind_of_max = ind_of_max_element(arr, arr_sz);
    int summ_after_max = 0;
    for (size_t i = ind_of_max + 1; i < arr_sz; ++i)
        summ_after_max += arr[i];
    return summ_after_max;
}
 
int abs_T(int a){
    return abs(a);
}
 
 
void Sort_arr(int *arr, size_t size)  //функция сортировка по убыванию
{
    for (size_t i = 0; i<size; i++)
        for (size_t j = size - 1; j>i; j--)
            if (abs_T(arr[j - 1])<abs_T(arr[j]))
            {
                int x = arr[j - 1];
                arr[j - 1] = arr[j];
                arr[j] = x;
            }
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "");
    
 
    const int n = 6;
    int source_stat_arr[n] = {
        -13, 27, 24, 112, -101, 55
    };
    cout << "source arrays" << endl;
    for (int i = 0; i < n; ++i)cout << source_stat_arr[i] << " ";
    cout << endl << endl;
    cout << "between 15...112" << endl;
    cout << number_within_the_limmmits(source_stat_arr, n, 15, 112) << endl;//числа 15 и 112 - пределы
    cout << "summs after max" << endl;
    cout << summ_arr_after_max(source_stat_arr, n) << endl;
    cout << endl << endl;
    Sort_arr(source_stat_arr, n);
    cout << "sorted" << endl;
    for (int i = 0; i < n; ++i)cout << source_stat_arr[i] << " ";
    cout << endl << endl;
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru