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

ошибки - C++

Восстановить пароль Регистрация
 
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 09:42     ошибки #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
#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++)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 09:42     ошибки
Посмотрите здесь:

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

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

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

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


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

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

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

Добавлено через 17 минут
*с++
почему с++?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 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];
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
06.11.2013, 10:50     ошибки #18
*c++ = ... это переход запись значения в c, а потом переход к следующему элементу массива. Если изначально был c[0], то *c++ это c[1]
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 10:52     ошибки
Еще ссылки по теме:

Ошибки VS C++
С++ ошибки C++
Ошибки C++

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

Или воспользуйтесь поиском по форуму:
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
06.11.2013, 10:52  [ТС]     ошибки #19
Все! спасибо большое Satana XIII!
Yandex
Объявления
06.11.2013, 10:52     ошибки
Ответ Создать тему
Опции темы

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