Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
1

ошибки

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

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 09:42
Ответы с готовыми решениями:

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

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

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

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

С++ ошибки
Задание 1. Дано число a. Не используя никаких операций, кроме умножения и...

18
ValeryS
Модератор
7264 / 5518 / 692
Регистрация: 14.02.2011
Сообщений: 18,691
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
Folko
265 / 253 / 27
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 09:53 3
Marrry, вы нам хоть покажите, какие ошибки выдает. Я так понял, что вы пытались в функции обработать массив c из main. В таком случае передавайте на него ссылку в функцию. Объявить такую же переменную не означает получить доступ к той же ячейке памяти.
0
Rivory
146 / 112 / 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
Folko
265 / 253 / 27
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 09:57 5
Rivory, у нее была явно не такая задумка. Она передавала в функцию сразу 2 массива и пыталась из них получить массив с
0
SatanaXIII
Супер-модератор
Эксперт С++
5773 / 2772 / 376
Регистрация: 01.11.2011
Сообщений: 6,744
Завершенные тесты: 1
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
Rivory
146 / 112 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 09:58 7
Цитата Сообщение от Folko Посмотреть сообщение
Rivory, у нее была явно не такая задумка. Она передавала в функцию сразу 2 массива и пыталась из них получить массив с
Ну да, логично. Но в любом случае, пока я писал сообщение, Валерий указал большинство ошибок.
0
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 09:59  [ТС] 8
Цитата Сообщение от Folko Посмотреть сообщение
Marrry, вы нам хоть покажите, какие ошибки выдает. Я так понял, что вы пытались в функции обработать массив c из main. В таком случае передавайте на него ссылку в функцию. Объявить такую же переменную не означает получить доступ к той же ячейке памяти.
да, мне нужна сумма элементов 2х массивов, ччерез функцию
0
Rivory
146 / 112 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:03 9
SatanaXIII, А зачем в этой функции вообще return *c; ?
0
Marrry
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
Rivory
146 / 112 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:06 11
Цитата Сообщение от Marrry Посмотреть сообщение
возвращает значение
Это я понимаю, но там не нужно это возвращаемое значение. В массив и так все записывается, а это возвращаемое значение нигде не используется.

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

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

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


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

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

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

Добавлено через 17 минут
*с++
почему с++?
0
SatanaXIII
Супер-модератор
Эксперт С++
5773 / 2772 / 376
Регистрация: 01.11.2011
Сообщений: 6,744
Завершенные тесты: 1
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
Rivory
146 / 112 / 21
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:50 18
*c++ = ... это переход запись значения в c, а потом переход к следующему элементу массива. Если изначально был c[0], то *c++ это c[1]
1
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 10:52  [ТС] 19
Все! спасибо большое Satana XIII!
0
06.11.2013, 10:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 10:52

Ошибки
Запускался работал, а потом выдал мне это. Я новичок , и совсем не знаю что...

Ошибки VS
Скомпилил проект с классом Material с пустым мейном, все ок. Добавил новый...

ошибки в С/С++
У меня такой вопрос: существуют ли темы по обсуждению ошибок, есть ли...


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

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

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