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

Ошибка в программе с использованием функций - C++

Войти
Регистрация
Восстановить пароль
 
evro3434
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 4
12.03.2013, 19:28     Ошибка в программе с использованием функций #1
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
#include <stdio.h>//подключение
#include <conio.h>//необходимых
#include <locale>//библиотек
#include <time.h>
 
 
 
void data_input(int *A); //Прототипы функций, в которые копируем предыдущий код
void proccessing(int *A, int inc1, int inc2);
void res_out(int *A);
 
 
void gen(int *A)//Генерация массива и вывод её на экран
{
        
    printf("Генерация массива A(20)...\n");
    
    for (int i = 0; i<20; i++)//цикл генерации массива
    {
        A[i] = rand()%20 - 10;
        printf("%d ", A[i]);
    };
    //вызов следующей функции
}
 
void data_input(int *A, int inc1, int inc2)//Функция ввода данных
{
    
    int m1, m2;
    printf("\nВведите два числа, которые будут номером элемента, который будет прибавлятся к элементам массива:\n");//вывод инструкции
    scanf("%d, %d", &m1, &m2);//ввод m1 m2
    inc1 = A[m1];//присваиваем переменным значения,
    inc2 = A[m2];//равные значениям элементов массива
    printf("\nК положительным элементам будет прибавлено число %d", inc1);//вывод информации об операциях
    printf(", ко всем остальным элементам будет прибавлено число %d", inc2);//с элементами
 
    
}
 
void proccessing(int *A, int inc1, int inc2)//функция обработки массива
{
    
    for (int i = 1; i < 20; i++)
    {
        if(A[i] > 0)
        {
            A[i] += inc1;
 
        } 
        else
        {
            A[i] += inc2;
        };
    };
 
    //вызов функции вывода данных
}
void res_out(int * A)
{
    printf("\nКонечный массив:\n");
    for (int i = 0; i<20; i++)
    {
        printf("%d ", A[i]);//вывод конечного массива
    };
    printf("\n\nКонец программы. Нажмите любую клавишу...");
 
}
 
 
 
 
 
void main()
{
    int A[21];
    int *pA;
    int inc1, inc2;
    setlocale(LC_ALL, "Russian");
    
 
    pA = &A[0];
    
    gen(pA);
    data_input(pA, &inc1, inc2);
    proccessing(pA, &inc1, &inc2);
    res_out(pA);
    getch();
 
}
//конец
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5385 / 1768 / 323
Регистрация: 10.12.2010
Сообщений: 5,233
Записей в блоге: 3
12.03.2013, 19:48     Ошибка в программе с использованием функций #2
Цитата Сообщение от evro3434 Посмотреть сообщение
Ошибка в программ
Какая? Как проявляется? Что программа делает? А что должна делать?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,164
Завершенные тесты: 2
12.03.2013, 20:20     Ошибка в программе с использованием функций #3
во всех функциях обработка массивов из 20 элементов, а передаётся массив из 21 элемента, что к чему?
C++
1
int A[21];
evro3434
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 4
12.03.2013, 22:27  [ТС]     Ошибка в программе с использованием функций #4
Программа определяет 2 элемента массива, первое число будет прибавлено к четным элементам, второе к нечетным

1>c:\users\kiriki\documents\visual studio 2008\projects\81327\81327\818263.cpp(85) : error C2664: proccessing: невозможно преобразовать параметр 2 из 'int *' в 'int'
HighPredator
 Аватар для HighPredator
5385 / 1768 / 323
Регистрация: 10.12.2010
Сообщений: 5,233
Записей в блоге: 3
12.03.2013, 22:31     Ошибка в программе с использованием функций #5
Ну так ваша функция proccessing принимает вторым и третьим параметром целые числа, зачем вы ей адреса их передаете?
evro3434
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 4
12.03.2013, 23:23  [ТС]     Ошибка в программе с использованием функций #6
убрал передачу адресов, теперь программа запускается, но падает, сообщая, что в функции data_input неинициализированные переменные inc1 и inc2
HighPredator
 Аватар для HighPredator
5385 / 1768 / 323
Регистрация: 10.12.2010
Сообщений: 5,233
Записей в блоге: 3
12.03.2013, 23:59     Ошибка в программе с использованием функций #7
Ну все правильно. Вы их объявили, но не инициализировали, а затем передали в функцию.
evro3434
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 4
13.03.2013, 09:19  [ТС]     Ошибка в программе с использованием функций #8
Инициализировал в функции data_input, теперь ругается, что эти переменные не инициализированы в processing. Если инициализировать их там, то программа будет прибавлять нули.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2013, 10:36     Ошибка в программе с использованием функций
Еще ссылки по теме:

организация программ с использованием функций C++
организация программ с использованием функций C++
C++ Переделать программу с использованием функций
Программа с использованием функций и ошибка [BCC32 Error] File1.c(2): E2293 ) expected C++
Переписать программу с использованием функций C++

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

Или воспользуйтесь поиском по форуму:
HighPredator
 Аватар для HighPredator
5385 / 1768 / 323
Регистрация: 10.12.2010
Сообщений: 5,233
Записей в блоге: 3
13.03.2013, 10:36     Ошибка в программе с использованием функций #9
evro3434, нет, в datainput вы ничего не инициализировали. Переменные там не модифицировались. Вам нужно тогда формальные параметры как ссылки описать было.
Yandex
Объявления
13.03.2013, 10:36     Ошибка в программе с использованием функций
Ответ Создать тему
Опции темы

Текущее время: 22:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru