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

Изменить программу чтобы программный код выполнялся в отдельных функциях - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В двухмерном массиве с целыми коэффициентами, для каждого столбца найти минимальный элемент в этом столбце и индекс этого элемента. http://www.cyberforum.ru/cpp-beginners/thread778474.html
Помогите еще пожалуйста. Имеется такое задание: в данном двухмерном массиве A с целыми коэффициентами для каждого столбца найти минимальное значение элемента в этом столбце, напечатать этот элемент и его индексы. Есть решение, только нужно сделать что бы размер массива в одном месте задавался и программа сама уже, так сказать, подстраивалась. Как-то через "for" нужно сделать, да только мозгов не...
C++ Русские буквы string string new_login; getline(cin,new_login); cout<<new_login; выводит хрень... если cout<<"ыпыв"; то все нормально.... http://www.cyberforum.ru/cpp-beginners/thread778458.html
C++ Маленькая мантисса long double
здрасте. Я использую pow (long double, long double) и не смотря на это, меня не удовлетворяет точность (не более 5ти знаков после запятой). А нужно как раз-таки 6. Есть ли какое-то простое решение? Спасибо
Преобразование string в char* C++
char* string_to_char(string str){ int size = str.size(); char *ch = new char; for(int i = 0; i < size; i++) { ch = str; }
C++ Сортировка структур http://www.cyberforum.ru/cpp-beginners/thread778430.html
Доброго времени суток! Помогите, пожалуйста, с сортировкой односвязного списка структур. С структурах содержится дата (год, месяц, день). В принципе достаточно сделать сортировку по году, остальное пока не важно. Хотел сделать самую простую сортировку пузырьком, только не очень понятно как поступить с указателями на структуры. Код программы #include <iostream> #include "course.h"...
C++ Каким образом в данном коде через 1ый массив выводится 2ый? Не пугайтесь большому количеству кода, по сути тут только три строки :) Как это работает? int pr_ug(float *t1,float *t2,float *t3) // функция для второго кода { if ((pr(t1,t1,t2,t2,t3,t3)==1)|| //pr тоже отдельная функция, но она просто возвращается значение 0 или 1 (pr(t2,t2,t3,t3,t1,t1)==1)|| (pr(t3,t3,t1,t1,t2,t2)==1)) подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
12887 / 7273 / 810
Регистрация: 27.09.2012
Сообщений: 17,972
Записей в блоге: 2
Завершенные тесты: 1
04.02.2013, 06:55     Изменить программу чтобы программный код выполнялся в отдельных функциях
Как вариант(без менюшки):
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <cstdio>
#include <windows.h>
#include <cmath>
 
 
void myfoo_array(int ** arr,int & height,int & width){
     for ( int i = 0 , flag = false; i < height ; ++i , flag=false )
     {
         for (int j=0; j < width ; ++j)
             if ( arr[i][j]!=0 )
             {
                 flag = true; 
                 break;
             }
        if (!flag)
        {
            delete [] arr[i];
            memcpy ( arr+i , arr+i+1 , sizeof  (arr[i])*(height-i-1) );
            --i; --height;
        }
     }
 
     for ( int i = 0 , flag=false ; i < width ; ++i , flag=false )
     {
         for (int j=0;j<height;++j)
             if ( arr[j][i] != 0)
             {
                 flag = true; 
                 break;
             }
        if ( !flag )
        {
            for ( int d = 0 ; d < height ; ++d )
                memcpy ( arr[d]+i , arr[d]+i+1 , sizeof (arr[d][i])*(width-i-1) ); //memcpy - копирует память; sizeof возвращает размер переданного объекта в байтах.
            --i; --width;
        }
     }
}
 
 
int ** create_array(int **& arr,int & height,int & width){
    printf("Введите размерность массива (ширина, высота): \n");
    scanf("%d %d", &width, &height);
    printf("\n");
    
    arr = new int*[height];   // height - высота    widtf - ширина
    for (int i = 0; i< height; ++i)
    {
        arr[i] = new int [width];
    }
     return arr;
}
 
 
void in_array(int **& arr,const int & height,const int & width){
    // Заполнение массива вручную.
    printf("Введите значения элементов массива: \n");
    for (int i = 0; i< height; ++i)
    {
        for (int j = 0; j< width; ++j)
        {
            printf("Введите элемент [%d][%d]: ", i+1, j+1);
            scanf("%d", arr[i]+j);
        }
    }
}
 
void print_array(int ** arr,const int & height,const int & width){
    for (int i = 0; i< height; ++i)
    {
        for (int j = 0; j< width; ++j)
        {
            printf("%d", arr[i][j]);
        }
        printf ("\n");
    }
}
 
int modsum_array(int ** arr,const int & height,const int & width){
     int sum = 0;
    for( int i = 0; i < height; ++i)
        for( int j = 0; j < width; ++j)
            if ( i < j )
            {
                sum += abs (arr[i][j]);
            }
      return sum;
}
 
int main()
{
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
//------------------------------------------------------------------------------------------------------------------------------------------------
 
    int ** a = NULL;
    int height = 0;
    int width = 0;
 
    printf("Демонстрация работы с массивами\n");
     // создание массива
    create_array(a,height,width);
     in_array(a,height,width);
 
// вывод массвиа на экран
    printf ("Вы ввели матрицу: \n\n");
     print_array(a,height,width);
 
//---------------------------------------------------------------------------------------------------------------------
// Уплотнение массива
     myfoo_array(a,height,width);
//---------------------------------------------------------------------------------------------------------------------
     printf ("\nИзмененная матрица: \n\n");
     print_array(a,height,width);
     
//---------------------------------------------------------------------------------------------------------------------
      printf ("\nСумма элементов расположенных выше главной диагонали равна: %d", modsum_array(a,height,width));
     
//---------------------------------------------------------------------------------------------------------------------
// Устранение утечек памяти
 
    for (int i = 0; i< height; ++i)
    {
        delete [] a[i];
    }
    delete [] a; 
 
    getchar();
    getchar();  
    return 0;
}
Изменить программу чтобы программный код выполнялся в отдельных функциях
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru