Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
1

ошибки

06.11.2013, 09:42. Показов 846. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
#include <iostream>
#include <conio.h>
using namespace std;
int fun (int a[], int b[] )
{       int *c, n;
        for (int i = 0; i < n; i++)
        {
        *c= a[i] + b[i];    
        }
        return *c;
}
int main()
{ int *a, *b, *c, n;
       cout << "Enter n: ";
        cin >> n;
    a = new int [n];
    b = new int [n];
    c = new int [n];
    cout << "Enter array a: ";
    for (int i = 0; i < n; i++)
        cin >> a[i];
   
    cout << "Enter array b: ";
    for (int i = 0; i < n; i++)
        cin >> b[i];
    fun(a,b);
        cout << fun <<endl;
 
    return 0;
}

помогите найти ошибку!
 Комментарий модератора 
Оформляйте пожалуйста код в соответствующие теги.
(в окне отправки сообщения слева вверху кнопка C++)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2013, 09:42
Ответы с готовыми решениями:

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h...

с2079 и с2228 ошибки при компиляции ниже участок кода, с которым праблема и скрины ошибки
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ bool game = true; // КЛАССЫ class Me; class mob { public: void...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private:...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить...

18
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
06.11.2013, 09:51 2
Marrry,
первыя ошибка
код оформляй в теги читать неудобно
выделяешь код и жмешь кнопочку С++
далее
Цитата Сообщение от Marrry Посмотреть сообщение
int *c, n;
for (int i = 0; i < n; i++)
n не инициализирован цикл крутится будет неизвестное количество раз, может ни разу
если нужен размер передавай в параметрах
Цитата Сообщение от Marrry Посмотреть сообщение
*c= a[i] + b[i];
указатель тоже не инициализирован ошибка доступа

Цитата Сообщение от Marrry Посмотреть сообщение
int fun (int a[], int b[] )
Цитата Сообщение от Marrry Посмотреть сообщение
fun(a,b);
разные параметры
Цитата Сообщение от Marrry Посмотреть сообщение
cout << fun <<endl;
fun что за переменная ?
исправь сначала это потом поглядим
0
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
06.11.2013, 09:53 3
Marrry, вы нам хоть покажите, какие ошибки выдает. Я так понял, что вы пытались в функции обработать массив c из main. В таком случае передавайте на него ссылку в функцию. Объявить такую же переменную не означает получить доступ к той же ячейке памяти.
0
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 09:53 4
C++
1
2
    fun(a,b);
        cout << fun <<endl;
В первой строчке вызывается функция, но её результат никуда не сохраняется.
Вторая строчка просто неправильная.

Легче написать так
C++
1
        cout << fun(a,b) <<endl;
0
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
06.11.2013, 09:57 5
Rivory, у нее была явно не такая задумка. Она передавала в функцию сразу 2 массива и пыталась из них получить массив с
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
06.11.2013, 09:57 6
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
#include <iostream>
#include <conio.h>
using namespace std;
int fun (int a[], int b[], int c[], int n)
{
        for (int i = 0; i < n; i++)
        {
        *c = a[i] + b[i];
        c++;
        }
        return *c;
}
int main()
{ int *a, *b, *c, n;
       cout << "Enter n: ";
        cin >> n;
    a = new int [n];
    b = new int [n];
    c = new int [n];
    cout << "Enter array a: ";
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    cout << "Enter array b: ";
    for (int i = 0; i < n; i++)
        cin >> b[i];
    fun(a,b,c,n);
 
    for (int i = 0; i < n; i++)
        cout << c[i] <<endl;
cin.ignore(2);
return 0;
}
0
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 09:58 7
Цитата Сообщение от Folko Посмотреть сообщение
Rivory, у нее была явно не такая задумка. Она передавала в функцию сразу 2 массива и пыталась из них получить массив с
Ну да, логично. Но в любом случае, пока я писал сообщение, Валерий указал большинство ошибок.
0
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 09:59  [ТС] 8
Цитата Сообщение от Folko Посмотреть сообщение
Marrry, вы нам хоть покажите, какие ошибки выдает. Я так понял, что вы пытались в функции обработать массив c из main. В таком случае передавайте на него ссылку в функцию. Объявить такую же переменную не означает получить доступ к той же ячейке памяти.
да, мне нужна сумма элементов 2х массивов, ччерез функцию
0
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:03 9
SatanaXIII, А зачем в этой функции вообще return *c; ?
0
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 10:06  [ТС] 10
Цитата Сообщение от Rivory Посмотреть сообщение
SatanaXIII, А зачем в этой функции вообще return *c; ?
возвращает значение

Добавлено через 51 секунду
Цитата Сообщение от SatanaXIII Посмотреть сообщение
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
#include <iostream>
#include <conio.h>
using namespace std;
int fun (int a[], int b[], int c[], int n)
{
        for (int i = 0; i < n; i++)
        {
        *c = a[i] + b[i];
        c++;
        }
        return *c;
}
int main()
{ int *a, *b, *c, n;
       cout << "Enter n: ";
        cin >> n;
    a = new int [n];
    b = new int [n];
    c = new int [n];
    cout << "Enter array a: ";
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    cout << "Enter array b: ";
    for (int i = 0; i < n; i++)
        cin >> b[i];
    fun(a,b,c,n);
 
    for (int i = 0; i < n; i++)
        cout << c[i] <<endl;
cin.ignore(2);
return 0;
}
а почему отрицательные значение не принимает?
0
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:06 11
Цитата Сообщение от Marrry Посмотреть сообщение
возвращает значение
Это я понимаю, но там не нужно это возвращаемое значение. В массив и так все записывается, а это возвращаемое значение нигде не используется.

а почему отрицательные значение не принимает?
У меня принимает.
0
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 10:09  [ТС] 12
Цитата Сообщение от Rivory Посмотреть сообщение
Это я понимаю, но там не нужно это возвращаемое значение. В массив и так все записывается, а это возвращаемое значение нигде не используется.
ну мне препод так сказала сделать. Вот я и написала...

Добавлено через 25 секунд
теперь я вообще запуталась
0
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:11 13
Отр. значения.
Миниатюры
ошибки  
0
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 10:15  [ТС] 14
Цитата Сообщение от Rivory Посмотреть сообщение
Отр. значения.
у меня
Миниатюры
ошибки  
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
06.11.2013, 10:18 15
Цитата Сообщение от Rivory Посмотреть сообщение
SatanaXIII, А зачем в этой функции вообще return *c; ?
Я хз. Я только дефибриллятором прошелся.

Цитата Сообщение от Marrry Посмотреть сообщение
возвращает значение


Цитата Сообщение от Marrry Посмотреть сообщение
а почему отрицательные значение не принимает?
А что вы поменяли?
0
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 10:40  [ТС] 16
А что вы поменяли?[/QUOTE]

все, разобралась с этим. А вообще функция правильно описана??

Добавлено через 1 минуту
а что значит cin.ignore(2) ???

Добавлено через 17 минут
*с++
почему с++?
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
06.11.2013, 10:50 17
Цитата Сообщение от Marrry Посмотреть сообщение
а что значит cin.ignore(2) ?
коль вы используете <conio.h>, то логичнее воткнуть getch();
Просто остановка программы перед завершением.
Цитата Сообщение от Marrry Посмотреть сообщение
*с++
почему с++?
Запись вида
C++
1
2
  for (int i = 0; i < n; i++)
    *c++ = a[i] + b[i];
это сокращенный вариант. Так как операция взятия значения указателя преоритетнее инкремента, то сперва будет произведено сложение и запись по указателю, а только потом его увеличение.
Хоть вот так вот:
C++
1
2
  for (int i = 0; i < n; i++, с++)
    *c = a[i] + b[i];
1
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:50 18
*c++ = ... это переход запись значения в c, а потом переход к следующему элементу массива. Если изначально был c[0], то *c++ это c[1]
1
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 10:52  [ТС] 19
Все! спасибо большое Satana XIII!
0
06.11.2013, 10:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2013, 10:52
Помогаю со студенческими работами здесь

Найти ошибки в данной программе (известно что есть только 2 ошибки)
У меня в модуле с програмирования задание: Найти ошибки в данной программе (известно что есть...

Ошибки после компиляции на Visual Express 2012.Ошибки в теме
Добрый вечер ребят помогите пожалуйста.Программа написана на Visual Express 2012.Обясните что...

Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы
Начал изучение ASP. Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы......

Windows XP на HP compaqt 6220 ошибки при установке, как убить эти ошибки
Всех приветствую уважаемые Комрады ,форумчане не проходите мимо помогите откликнитесь мучаюсь уже...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru