e4ea61d4-503b-40f3-ab98-81ac177b4a26 e4ea61d4-503b-40f3-ab98-81ac177b4a26(80) : warning C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details. S:\checker\compile\vc10\include\stdlib.h(867) : see declaration of 'itoa' e4ea61d4-503b-40f3-ab98-81ac177b4a26(102) : warning C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details. S:\checker\compile\vc10\include\stdlib.h(867) : see declaration of 'itoa' e4ea61d4-503b-40f3-ab98-81ac177b4a26.obj : error LNK2019: unresolved external symbol _itoa referenced in function "void __cdecl perform_task(void)" (?perform_task@@YAXXZ) e4ea61d4-503b-40f3-ab98-81ac177b4a26.exe : fatal error LNK1120: 1 unresolved externals
Ну, то, что я писал выше. Функции, которых нет в стандарте, идут лесом.
Ради интереса допилил твой код, попутно убрал еще один баг и отправил тестировщику. Тестировщик сказал, что программа обрушилась по сегфолту на втором же тесте.
http://acm.timus.ru/submit.aspx?space=1&num=1220 Только я хз как там сейчас с регистрацией. И ввод-вывод там не в файлы а в stdin/stdout, но это правится в твоем случае двумя строчками.
Pesets, кстати, такого рода задачи и помогают осмыслить работу гораздо яснее. Приведу несколько простых задачек. Везде надо выяснить, что будет выведено на экран БЕЗ использования компилятора. Т.е. решить в уме.
Code
#include <iostream> struct A { A(): i(1){} int i; }; struct B : A { B(): j(2){} int j; }; int main() { A *p = new B[10]; A *q = p; int total = 0; for (int i = 0; i < 10; ++i) { total += q++->i; } std::cout << total << std::endl; //чему равна переменная total в этом участке кода? delete [] p; }
Code
#include <stdio.h> class I { int i; public: I() : i(1) {printf ("owl\n");} I(int a) : i(a) {printf ("cat %d\n",i);} I(const I& other) : i(other.i) {printf ("sheep %d\n", i);} ~I() {printf ("wolf\n");} int Get() {return i;} int f(I& a) {a.i += i; return a.i;} int g(I a) {a.i += i; I tmp (a.i+400); return tmp.Get();} }; int main() { I x(2000); I y; int a, b; a = x.f(y); b = x.g(y); printf ("%d, %d\n", a, b); printf ("%d, ", x.Get()); printf ("%d\n", y.Get()); return 0; }
Code
#include <stdio.h> class A { int i; public: A(int x) {i=x; printf ("mercury\n");} virtual ~A() {printf ("venus\n");} int & Get() {return i;} void f(int a) {i+=a;} virtual int g(int a) const {return 10+a;} int h() const {return 1;} void t() {f(g(2000));} }; class B : public A { public: B():A(7) {printf ("earth\n");} ~B() {printf ("mars\n");} void f(int a) {Get()-=a;} int g(int a) const {return -400;} int h() const {return 80;} }; int main() { A a(350); B b; A *p = &b; a.t(); b.t(); printf ("%d %d\n", b.g(a.Get()), p->g(a.Get())); printf ("%d %d\n", b.h(), p->h()); return 0; }
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Суббота, 27 Августа 2011, 09:40
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Суббота, 27 Августа 2011, 12:11
Demeron, можно. Погугли различия. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Pesets, исходя из стиля авора, я посчитал, что писать надо на Си, твой на С++. Я ещё старался не использовать больше переменных, чем у него задано. Твой вариант ещё не компилировал - вечерком проверю быстродействие и память. Есть несколько видов оптимизации - по используемой памяти, по объему кода, по скорости выполнения и т.п. для каждого из них можно сделать свою оптимизацию. Довольно интересно разбираться в таких вещах. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Суббота, 27 Августа 2011, 13:13
froex Прогнал 1ю задачку через компилятор, долго втыкал, почему не 10) Минту через пять только вспомнил, что делает оператор ++. Зачет) Вторую задачу решил почти правильно, вместо sheep 2001 в третьей строчке написал cat 2001, но это типа невнимательность) Остальное как компилятор сказал. В третьей задаче написал venus mars venus вместо mars venus venus... В общем, ты меня сделал... я нубайко)
Добавлено (27.08.2011, 13:30) --------------------------------------------- Вариант на С:
Кстати, тут можно обойтись одним буфером, но тогда его надо будет в конце еще раз заполнять. Зато памяти вдвое меньше.
Добавлено (27.08.2011, 13:35) --------------------------------------------- Упс, че-то я совсем забыл, что в С нету new delete и переменные в начале функции задавать надо. Ща запилю
Сообщение отредактировал Pesets - Суббота, 27 Августа 2011, 13:38
Все задачи я решил сразу правильно, когда их дали. Первую мне предложили на форуме программистов. Вторые две - это зачётные задачи в университете были. Я могу попробовать отыскать ещё такие задачи. Кстати, первую задачу даже программист лучше нас вместе взятых не сразу верно решил ))) Зато после решения таких задач сразу осознаёшь, что происходит и как. Да, надо поискать ещё задачи. Сейчас буду прогонять твои исходники через nemiver. Посмотрим, что покажется. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Упс, че-то я совсем забыл, что в С нету new delete и переменные в начале функции задавать надо. Ща запилю
Да, это частая ошибка. Ещё в заголовке оператора for() не объявишь переменных. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.