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

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

Войти
Регистрация
Восстановить пароль
 
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
#1

ошибки - C++

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

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

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

Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы - C# ASP.NET
Начал изучение ASP. Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы... А мне ОЧЕНЬ хотелось бы почитать, что...

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

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

Не удалось инициализировать SAM из-за следующей ошибки: Присоединенное к системе устройство не работает. Состояние ошибки: 0xc0000001 - Windows XP
Добрый день форумчане. На работе одна женщина после месяца отпуска напрочь забыла пароль от своей учетной записи (она сидела на...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,653
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
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
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 09:57     ошибки #5
Rivory, у нее была явно не такая задумка. Она передавала в функцию сразу 2 массива и пыталась из них получить массив с
SatanaXIII
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 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
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 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
Супер-модератор
Эксперт С++
5593 / 2627 / 240
Регистрация: 01.11.2011
Сообщений: 6,461
Завершенные тесты: 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     ошибки
Еще ссылки по теме:

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

Ошибки при компиляции - исправить ошибки в коде - C (СИ)
Помогите исправить ошибки , не понимаю в чем может быть причина ... #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; ...

Мне нужно всего лишь найти синтаксические ошибки, второй день ломаю голову, в условии есть ошибки - Lisp
Мне нужно всего лишь найти синтаксические ошибки, второй день ломаю голову, в условии есть ошибки. А в каком именно условии не знаю:( ...

На моем компе во время установки игры часто возникают ошибки, зависания и ошибки копирования файлов с установочного диска. - Windows XP
Добрый вечер! На моем компе во время установки игры часто возникают ошибки, зависания и ошибки копирования файлов с установочного диска....

ошибки в готовом коде(ошибки указаны) - Assembler
Ввести с клавиатуры строку (кол-во символов не больше 10). И определить ее длину c использованием подпрограмм. model small .stack 100h ...


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

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

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