Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2014, 10:35   #1
Kapustachkin
Новичок
Джуниор
 
Регистрация: 04.11.2014
Сообщений: 4
Вопрос Помогите найти ошибку в коде.

Здравствуйте.
Учу С++ по книгам... Уже не удивляюсь, что в книгах так и на сайтам которые себя позиционируют как обучающии имеются ошибки в коде... Сложилось впечатление что специально делают)))
И вот дошел до массивов и тут не могу понять как решить эту ошибку
Код:
#include <iostream>
using namespace std;

int main() {
	int i;
	int v[10] = {0};
	int w[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
	for (i = 0; i <10; ++i) cout << v[i] << ' ';
	cout << endl;
	std::copy(w, v, 10);
	double v1[10] = {0};
	double w1[10] = {1.1, 2.1, 3.1, 4, 5, 6, 7, 8, 9, 10.1};
	for (i = 0; i <10; ++i) cout << v1[i] << ' ';
	cout << endl;
	std::copy(w1, v1, 10);
	for (i = 0; i <10; ++i) cout << w1[i] << ' ';
	cout << endl;
	return 0;
}
Ругается на 7 строку
Код:
int w[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Kapustachkin вне форума Ответить с цитированием
Старый 04.11.2014, 10:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сложилось впечатление что специально делают)))
Как ты думаешь что фраза Ругается на 7 строку должна сказать нам?
А-а-а.. Я понял. Угадай мелодию. Ладно. Вот моя догадка: Ошибка не там где ты ее нашел.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2014, 10:57   #3
Kapustachkin
Новичок
Джуниор
 
Регистрация: 04.11.2014
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как ты думаешь что фраза Ругается на 7 строку должна сказать нам?
А-а-а.. Я понял. Угадай мелодию. Ладно. Вот моя догадка: Ошибка не там где ты ее нашел.
Я понимаю, что вы профессионал своего дела и ваш авторитет на этом форуме не зыблем, но зачем тролинг та устраиваете?
Kapustachkin вне форума Ответить с цитированием
Старый 04.11.2014, 11:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но зачем тролинг та устраиваете?
Что бы вытянуть из тебя самую важную информацию: текст ошибки.
Ты же молчишь, ничего не говоришь, вот и приходится выдумывать всякие заклинания, снимающие блокировку твоей стеснительности.
Ошибка у тебя скорее всего в том что ты неверно используешь функцию copy().
Это все что я могу сказать учитывая полноту информации в топе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2014, 11:24   #5
Kapustachkin
Новичок
Джуниор
 
Регистрация: 04.11.2014
Сообщений: 4
По умолчанию

Ошибка
Цитата:
warning: unused variable 'w' [-Wunused-variable]
В коде ещё была ошибка с Copy, было именно написано Copy без скобок, я заменил на std::copy.
Kapustachkin вне форума Ответить с цитированием
Старый 04.11.2014, 11:27   #6
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Автор, на будущие: остановок "туда и здеся" не существует.

Существуют конкретные ошибки.

В случае ошибок компиляции - всегда приводите сообщение компилятора.
В случае ошибок линкера - всегда приводите сообщение линкера.
В случае, если программа компилируется, но работает не так как ожидалось - всегда приводите детальное описание, что конкретно не так.

Это экономит время. Программисты - не телепаты.


http://rextester.com/FRC58566

Код:
#include <iostream>
using namespace std;

int main() {
	int i;
	int v[10] = {0};
	int w[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
	for (i = 0; i <10; ++i) cout << v[i] << ' ';
    
	cout << endl;
    
    
	//std::copy(w, v, 10); //<--- некорректные аргументы функции:
    
    /*
        ознакомьтесь с документацией:
        http://www.cplusplus.com/reference/algorithm/copy/
        
        template <class InputIterator, class OutputIterator>
          OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result);
    */
    
    
    std::copy(w, w+10,v); //<--- исправленно
    
    
    
	double v1[10] = {0};
	double w1[10] = {1.1, 2.1, 3.1, 4, 5, 6, 7, 8, 9, 10.1};
	for (i = 0; i <10; ++i) cout << v1[i] << ' ';
	cout << endl;
    
	//std::copy(w1, v1, 10); //<--- некорректные аргументы функции:
    //аналогично предыдущему инцинденту (см 13 строку)
    
    std::copy(w1, w1+10,v1); //<--- исправленно
    
    
	for (i = 0; i <10; ++i) cout << w1[i] << ' ';
	cout << endl;
	return 0;
}
_Bers вне форума Ответить с цитированием
Старый 04.11.2014, 11:53   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Эх... Жаль что нельзя в правила включить сей пункт - обязательно приводить ошибки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2014, 09:28   #8
Kapustachkin
Новичок
Джуниор
 
Регистрация: 04.11.2014
Сообщений: 4
По умолчанию

Огромное спасибо за помощь в решение вопроса)))
Я извиняюсь, что начал топик менее информативно, а именно не указал саму ошибку.

Я читаю две книги + читаю сайты по изучению С++ и постоянно нарываюсь на ошибки в коде - авторы специально это делают, чтоб ученик сам думал как правильно дописать или это просто опечатки в коде?

Последний раз редактировалось Kapustachkin; 05.11.2014 в 09:38.
Kapustachkin вне форума Ответить с цитированием
Старый 05.11.2014, 09:33   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот будет тебе на будущее урок.
Чем подробнее вопрос - тем подробнее ответ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2014, 10:38   #10
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Kapustachkin Посмотреть сообщение
авторы специально это делают, чтоб ученик сам думал как правильно дописать или это просто опечатки в коде?
Скорее всего ваш компилятор отличается от указанного в книге.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в коде С++ JokerCD Помощь студентам 0 26.12.2013 12:38
Помогите найти ошибку в коде ( С++ ) nexUS1 Помощь студентам 1 29.12.2009 01:09
Помогите найти ошибку в коде. Serror Общие вопросы C/C++ 7 04.10.2009 00:44
помогите найти ошибку в коде xaero93 Помощь студентам 4 20.04.2009 16:05
Помогите найти ошибку в коде C++ Жека:) Помощь студентам 15 29.10.2008 11:32