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

Представление кода в виде функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Длинная арифметика (найти остаток при делении на 7) http://www.cyberforum.ru/cpp-beginners/thread749831.html
Уважаемые программисты! Задача на длинную арифметику (никогда такую не решал, потому хочу разобраться. Математически понимаю, а как написать код не знаю). Сама задача такова: нужно найти остаток при делении очень длинного числа (до 50 знаков) на 7. Приведите, пожалуйста, код.
C++ Двумерные массивы. Использование динамически распределяемой памяти В с++ Создать квадратную матрицу целых чисел и выполнить ее обработку согласно заданию, указанному ниже. Выполнить задание с такими дополнительными условиями: - размер матрицы вводится с клавиатуры; - память под двумерный массив выделяется динамически, на этапе выполнения программы; - ввод, вывод и обработку матрицы реализовать в виде функций, которым матрица передается в качестве... http://www.cyberforum.ru/cpp-beginners/thread749828.html
C++ Сложение двух чисел в Двоично-десятичной системе счисления
Доброго времени суток, может есть ли у кого уже готовый код? или же можете носом ткнуть на ссылку, bcd - двоично десятичная система, весь инет перерыл подобных сорсов не нашел Суть программы: Сложение двух чисел в двоично-десятичной системе счислений
C++ Одна из первых задач Страуструпа. Программа по переводу дюймов в сантимы и обратно
Всем бывалым наверное программа по переводу дюймов в сантимы и обратно проста наверное как мелодия кузнечик, а вот таким как я пока еще лунная соната, ну да ладно с предисловием программу как сумел сделал, #include "stdafx.h" #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus");
C++ Как добиться возможности компилить с поддержкой нового стандарта в Code Blocks (MinGW)? http://www.cyberforum.ru/cpp-beginners/thread749800.html
Народ как добиться возможности компилить с поддержкой нового стандарта ?
C++ Построить таблицу истинности и определить выполнимость формулы: Значения Х1,Х2,Х3 одинаковы для всех вариантов X1 X2 X3 0 0 0 0 0 1 Вот моё задание 7) Х1*Х2*Х3 + Х1*Х2*Х3 + Х1*Х2*Х3 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 подробнее

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

Представление кода в виде функции - C++

29.12.2012, 23:04. Просмотров 487. Ответов 10
Метки (Все метки)

Столкнулся с проблемой, сделал код в виде функций, все запускается и вроде бы работает, но как введу значения жму Enter и программа просто виснет. В чем может быть проблема? Компилятор все норм компилит.
Исходный:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include <tchar.h>
#include <iostream.h>
#include <math.h>
//---------------------------------------------------------------------------
/*
6. Найти максимальный элемент из положительных элементов массива,
и элементов, не кратных числу 7.
*/
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
        //Описание данных
    int amax,a[10],i,k,j,x[10],y[10],n_max,S;
 
 
        //Ввод массива
    cout<<"Enter a:"<<endl;
    for (i=0; i < 10; i++)
        cin>>a[i];
 
        //Формирование нового массива из положительных и не кратных 7.
    k=0; j=0;
    for(i=0; i<10; i++)
      {
         if(a[i]>0 && a[i]%7!=0)
            x[j++]=a[i];
 
      }
    if (j!=0)
 
    {   //Вывод нового массива
    cout<<"NoviiMassiv="<<endl;
    for(i=0;i<j;i++)
        {
            cout<<"  "<<x[i];
        }
 
    cout<<endl;
        //Поиск максимального элемента в новом массиве
    amax=x[0];  n_max=0;
 
    for (i=0; i < j; i++)
          if(amax<x[i])
            {
                amax=x[i];
                n_max=i;
 
            }
 
    cout<<"amax="<<amax<<endl;
 
    }
    else cout<<"Net kratnix"<<endl;
            //Формирование нового массива из отрицательных.
    k=0;
    for(i=0; i<10; i++)
      {
         if(a[i]<0)
            y[k++]=a[i];
 
      }
    if(k!=0)
    {
            //Вывод нового массива отрицательных чисел
    cout<<"MassivOtritsatelnih="<<endl;
    for(i=0;i<k;i++)
        {
            cout<<"  "<<y[i];
        }
 
    cout<<endl;
 
 
            //Поиск суммы элементов нового массива
   S=0; i=0;
   for(;i<k;)
   {
        S+=y[i], i++;
   }
            //Вывод результата
        cout<<"Summa="<<S<<endl;
 
   }
   else cout<<"Net otricatelnih"<<endl;
   system("pause");
    return 0;
}
//---------------------------------------------------------------------------
В виде функции:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include <tchar.h>
#include <iostream.h>
#include <math.h>
//---------------------------------------------------------------------------
 
#pragma argsused
//Прототипы
void cinA (int *a);
void getM (int *&x);
void newArray (int *a, int *x, int &j);
void getArray (int *x, int j);
void poiskMax (int amax, int *x, int &j);
void newOtrArray (int *a, int *y, int &k);
void getOtrArray (int *y, int k);
void SummArray (int &S, int k, int *y);
 
void cinA (int *a)
{
    int i;
        cout<<"Enter a:"<<endl;
    for (i=0; i < 10; i++)
        cin>>a[i];
}
 
void getM (int *&x)
{
    x=new int[10];
}
 
void newArray (int *a, int *x, int &j)
{
    int i;
    j=0;
    for(i=0; i<10; i++)
      {
         if(a[i]>0 && a[i]%7!=0)
            x[j++]=a[i];
 
      }
}
 
void getArray (int *x, int j)
{
 
    //Вывод нового массива
    cout<<"NoviiMassiv="<<endl;
    int i;
    for(i=0;i<j;i++)
        {
            cout<<"  "<<x[i];
        }
 
    cout<<endl;
}
 
void poiskMax (int amax, int *x, int &j)
{
    amax=x[0];
    int i;
    for (i=0; i < j; i++)
          if(amax<x[i])
            {
                amax=x[i];
            }
 
    cout<<"amax="<<amax<<endl;
}
 
void newOtrArray (int *a, int *y, int &k)
{
    k=0;
    int i;
    for(i=0; i<10; i++)
      {
         if(a[i]<0)
            y[k++]=a[i];
 
      }
}
 
void getOtrArray (int *y, int k)
{
    cout<<"MassivOtritsatelnih="<<endl;
    int i;
    for(i=0;i<k;i++)
        {
            cout<<"  "<<y[i];
        }
 
    cout<<endl;
 
}
 
void SummArray (int &S, int k, int *y)
{
   int i;
   S=0; i=0;
   for(;i<k;)
   {
        S+=y[i], i++;
   }
            //Вывод результата
        cout<<"Summa="<<S<<endl;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int *a;
    cinA (a);
    int *x;
    getM (x);
    int j;
    newArray (a, x, j);
    getArray (x, j);
    int amax;
    poiskMax (amax, x, j);
    int *y;
    int k;
    newOtrArray (a, y, k);
    getOtrArray (y, k);
    int S;
    SummArray (S, k, y);
    system("pause");
}
//---------------------------------------------------------------------------
Даже в голову ничего не лезет, предрасполагаю что что-то с указателями) сейчас сижу перечитываю главу про указатели(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru