Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
romanhaisarov
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 12
#1

перегруженные функции - C++

28.11.2013, 16:03. Просмотров 321. Ответов 4
Метки нет (Все метки)

Вариант 18. В одномерном массиве, состоящем из п элементов, вычислить:
1) номер минимального по модулю элемента массива;
2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.


Есть код, но он вылетает после ввода размера массива. На этом и других форумах есть обсуждение этого задания, но без перегрузки функции. Преподу сдал такое - он мне отдал на доработку. Надо сказать, программирование мне дается тяжко. Подскажите, пожалуйста, как это исправить ?
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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
int n;
 
    
    void func (int *a, int min) {
                
        min=a[0];
        for (int i=0; i<n; i++)
            if (a[min]>a[i])
            min=i;
                cout<<"Минимальный по модулю элемент"<<a[min]<<endl;
    }
 
void func (int *a, float ot, int n) {
        for (int i=0; i<n; i++)
            if (a[i]<0) {
                ot=i;
                break;}
    }
    void func (int *a, float ot, float s=0) {
        for (int i=ot+1; i<n; i++)
            s+=a[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    }
 
    
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
 
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 16:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос перегруженные функции (C++):

Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу - C++
Стоит следующая задача: Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу. Функцию написал, но я...

Перегруженные функции. - C++
Есть код с учебника, по идеи должно быть все правильно. КОД: #include&lt;iostream.h&gt; #include&lt;conio.h&gt; int //Îáüÿâëåíèå êëàññà...

перегруженные функции - C++
Написать перегруженные функции и основную программу, которая их вызывает. а) для перевода часов и минут в минуты; б)для перевода...

Перегруженные функции - C++
Всем доброго дня! Помогите с программой: Написать перегруженную функцию суммирования для получения суммы кодов символов от 'a’ до 'z’. В...

Перегруженные функции - C++
Помогите написать перегруженные функции и основную программу, которая их вызывает. 1) для вычитания целых чисел; 2) для вычитания...

Перегруженные функции - C++
Написать перегруженную функцию, которая возвращает площадь квадрата, прямоугольника, треугольника и круга. Считать, что для вычисления...

4
ShadowFirst
55 / 48 / 1
Регистрация: 31.10.2013
Сообщений: 164
28.11.2013, 16:37 #2
Цитата Сообщение от romanhaisarov Посмотреть сообщение
Вариант 18. В одномерном массиве, состоящем из п элементов, вычислить:
1) номер минимального по модулю элемента массива;
2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.


Есть код, но он вылетает после ввода размера массива. На этом и других форумах есть обсуждение этого задания, но без перегрузки функции. Преподу сдал такое - он мне отдал на доработку. Надо сказать, программирование мне дается тяжко. Подскажите, пожалуйста, как это исправить ?
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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
int n;
 
    
    void func (int *a, int min) {
                
        min=a[0];
        for (int i=0; i<n; i++)
            if (a[min]>a[i])
            min=i;
                cout<<"Минимальный по модулю элемент"<<a[min]<<endl;
    }
 
void func (int *a, float ot, int n) {
        for (int i=0; i<n; i++)
            if (a[i]<0) {
                ot=i;
                break;}
    }
    void func (int *a, float ot, float s=0) {
        for (int i=ot+1; i<n; i++)
            s+=a[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    }
 
    
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
 
 
    return 0;
}
C++
1
2
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
Нет условия выхода из цикла нормального или это ваша опечатка или так восприняло здесь, не знаю но это единственное что я увидел что могло вызвать ошибку, думаю имелось ввиду i<n
1
romanhaisarov
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 12
28.11.2013, 18:27  [ТС] #3
Цитата Сообщение от ShadowFirst Посмотреть сообщение
C++
1
2
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
Нет условия выхода из цикла нормального или это ваша опечатка или так восприняло здесь, не знаю но это единственное что я увидел что могло вызвать ошибку, думаю имелось ввиду i<n
Спасибо за ответ,.. да это была моя опечатка.. это я уже нашел и исправил, но.. программа завершается на выдаче на экран срандомленного массива из 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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
 
void func (int *a, int min, int n) {
                
        min=a[0];
        for (int i=0; i<n; i++)
            if (a[min]>a[i])
            min=i;
                cout<<"Минимальный по модулю элемент"<<a[min]<<endl;
                cout<<"Его номер"<<min<<endl;
    }
 
void func (int *a, float ot, int n) {
        for (int i=0; i<n; i++)
            if (a[i]<0) {
                ot=i;
                break;}
    }
    void func (int *a, int n, float ot, float s=0) {
        for (int i=ot+1; i<n; i++)
            s+=a[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    
    }
    
    
 
    
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i<n;i++)
    cout<<a[i]<<"  "; cout<<endl;
system("pause");
return 0;
 
}
Добавлено через 1 час 37 минут
up! помогите, пожалуйста, найти ошибку
0
ShadowFirst
55 / 48 / 1
Регистрация: 31.10.2013
Сообщений: 164
28.11.2013, 19:37 #4
Код вроде не хитрый и ничего из за чего могла возникнуть ошибка я не увидел. Тем более все таки решил запустить у себя все отлично выводит и никаких ошибок или завершения приложения нет.
0
romanhaisarov
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 12
28.11.2013, 20:06  [ТС] #5
Цитата Сообщение от ShadowFirst Посмотреть сообщение
Код вроде не хитрый и ничего из за чего могла возникнуть ошибка я не увидел. Тем более все таки решил запустить у себя все отлично выводит и никаких ошибок или завершения приложения нет.
Наткнулся на одном сайте на полезную информацию и... разобрался!!!!
Вот окончательный код:
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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
 
void func (int *b, int z) {
            int min;    
        min=b[0];
        for (int i=0; i<z; i++)
            if (abs(b[min])>abs(b[i]))
            min=i;
                cout<<"Минимальный по модулю элемент"<<b[min]<<endl;
                cout<<"Его номер"<<min+1<<endl;
    }
 
void func (int *b, int z, float s) {
    float ov;
        for (int i=0; i<z; i++)
            if (b[i]<0) {
                ov=i;
                break;}
    
                    for (int i=ov+1; i<z; i++)
            s+=b[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    
    }
    
    
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    float d=0;
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i<n;i++)
    cout<<a[i]<<"  "; cout<<endl;
 
func (a, n);
func (a, n, d); 
system("pause");
 return 0;
 
 
}
0
28.11.2013, 20:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2013, 20:06
Привет! Вот еще темы с ответами:

Перегруженные функции - C++
Нужно создать программу для определения среднего арифметического и среднего геометрического трех целых и положительных чисел,определить что...

Перегруженные функции - C++
Добрый вечер. Возник вопрос.Написал две перегруженные функции. double power(double, int); int power(int, int); Первая для...

Перегруженные функции - C++
Подскажите, плиз, с заданием. Задание у меня такое: написать перегруженную функцию для расчета: y=|sin x|-|cos x| Написал я...

Перегруженные функции - C++
В одномерном массиве, состоящем из п элементов, вычислите: 1) среднее арифметическое элементов, расположенных до первого и после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru