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

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

Войти
Регистрация
Восстановить пароль
 
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
#1

Работает в онлайн компиляторах, но не работает у меня - C++

24.12.2013, 02:26. Просмотров 426. Ответов 11
Метки нет (Все метки)

Проверяю данные, но на компьютере не работает, в чем роблема?
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
 
#define MAX(A,B) (((A)>(B))? (A) : (B))
 
char * lcs(const char *a,const char * b) {
    int lena = strlen(a)+1;
    int lenb = strlen(b)+1;
 
    int bufrlen = 40;
    char bufr[40], *result;
 
    int i,j;
    const char *x, *y;
    int *la = calloc(lena*lenb, sizeof( int));
    int  **lengths = malloc( lena*sizeof( int*));
    for (i=0; i<lena; i++) lengths[i] = la + i*lenb;
 
    for (i=0,x=a; *x; i++, x++) {
        for (j=0,y=b; *y; j++,y++ ) {
            if (*x == *y) {
               lengths[i+1][j+1] = lengths[i][j] +1;
            }
            else {
               int ml = MAX(lengths[i+1][j], lengths[i][j+1]);
               lengths[i+1][j+1] = ml;
            }
        }
    }
 
    result = bufr+bufrlen;
    *--result = '\0';
    i = lena-1; j = lenb-1;
    while ( (i>0) && (j>0) ) {
        if (lengths[i][j] == lengths[i-1][j])  i -= 1;
        else if (lengths[i][j] == lengths[i][j-1]) j-= 1;
        else {
//          assert( a[i-1] == b[j-1]);
            *--result = a[i-1];
            i-=1; j-=1;
        }
    }
    free(la); free(lengths);
    return strdup(result);
}
 
int main()
{
    printf("%s\n", lcs("thisisatet", "testingtesting")); // tsitest
    return 0;
}
выдает
1>------ Build started: Project: 777-=, Configuration: Debug Win32 ------
1>Compiling...
1>777-=.cpp
1>c:\users\documents\visual studio 2005\projects\777-=\777-=\777-=.cpp(12) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
1>c:\users\documents\visual studio 2005\projects\777-=\777-=\777-=.cpp(13) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
1>c:\users\documents\visual studio 2005\projects\777-=\777-=\777-=.cpp(20) : error C2440: 'initializing' : cannot convert from 'void *' to 'int *'
1> Conversion from 'void*' to pointer to non-'void' requires an explicit cast
1>c:\users\documents\visual studio 2005\projects\777-=\777-=\777-=.cpp(21) : error C2440: 'initializing' : cannot convert from 'void *' to 'int **'
1> Conversion from 'void*' to pointer to non-'void' requires an explicit cast
1>Build log was saved at "file://c:\Users\Documents\Visual Studio 2005\Projects\777-=\777-=\Debug\BuildLog.htm"
1>777-= - 2 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 02:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работает в онлайн компиляторах, но не работает у меня (C++):

Программа не работает на всех компиляторах одинаково - C++
Привет. #include &lt;iostream&gt; using namespace std; void array_sdvig_napravo(int array, int size) { register int temp = array; ...

Почему у меня не работает программа? - C++
блин что тут не так? #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; const int n=5,m=6; int main() { int i,j; ...

Ребята, у меня не работает программа. Посмотрите - C++
Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащей хотя бы один...

Почему у меня не работает нужно исправить - C++
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt;...

Вот у меня код с массивами, но никак не работает - C++
Дан двумерный массив (N+15)x(N+15) найти сумму всех чисел стоящих выше главной диагонали и сравнить ее с суммой чисел стоящих ниже (главную...

У меня не работает прога запрограмированная на Численные методы! - C++
Прога по численным методам. Вычисляет Собственные значения и собственные вектора матрицы. Загвоздка в том что в матрице 3Х3 меняют два...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
24.12.2013, 02:28 #2
Дело в том, что С++ компилятор не преобразовывает явно память, выделяемую malloc, а вот С компиляторы это делают.
Вам нужно создать проект с языком С.
0
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
24.12.2013, 02:31  [ТС] #3
Да я вот не знаю его, а проверить надо - как быть?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
24.12.2013, 02:39 #4
И кстати, strdup - это GNU extension, в VS вы скорее всего не скомпилите.
Вам лучше все-таки попробовать решить все самим.
0
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
24.12.2013, 02:52  [ТС] #5
Обычо я так и делаю - но мне неделю снится эта задача - и теперь мне просто уже интересно что же там у меня не так в моем решении
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 13:11 #6
Цитата Сообщение от Aliru Посмотреть сообщение
Да я вот не знаю его, а проверить надо - как быть?
Изменить расширение файла (компилируемого) на .c. В 10 студии компилируется без ошибок (с предупреждением насчёт strdup).

Добавлено через 9 часов 26 минут
Aliru, что молчите? Скомпилировалось?
1
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
24.12.2013, 14:15  [ТС] #7
Добрый день!

Спасаю жизни в рабочее время))) поэтому не отвечал.
Утром попытался - снова выдает ошибку.
Я, к сожалению, не могу понять - как это сделать, наверное - изменил в названии на .с но ошибка выдается типа файл с, а компилятор с++.
У меня Вижуал студио 2005
0
Alex5
1052 / 715 / 105
Регистрация: 12.04.2010
Сообщений: 1,818
24.12.2013, 14:31 #8
C++
1
2
3
4
5
6
7
    /* VS2008 : ok */
    int *la = (int*)calloc(lena*lenb, sizeof( int));
    int  **lengths = (int**)malloc( lena*sizeof( int*));
 
    /* в этих строках Visual Studio выдаст ошибку */
    //int *la = calloc(lena*lenb, sizeof( int));
    //int  **lengths = malloc( lena*sizeof( int*));
1
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 16:40 #9
Цитата Сообщение от Aliru Посмотреть сообщение
Я, к сожалению, не могу понять - как это сделать, наверное - изменил в названии на .с но ошибка выдается типа файл с, а компилятор с++.
У меня Вижуал студио 2005
С 2005 студией незнаком, поэтому не знаю, как там компилятор выбрать. В 10-й студии в Свойствах проекта - С/С++ - Дополнительно - Компилировать как, тут можно выбрать: Компилировать как код С или как код С++ (если это выбрать, то будет компилироваться выбранным компилятором, вне зависимости от расширения файла). Если стоит по умолчанию, то, как я понимаю, компилятор автоматически будет выбираться, в зависимости от расширения.
1
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
24.12.2013, 17:05  [ТС] #10
А скажите, вопрос не по теме - если я учусь только онлайн и по книгам, но не работаю в ИТ, программистом мне не стать?
Или чудеса бывают?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
25.12.2013, 01:22 #11
Цитата Сообщение от Aliru Посмотреть сообщение
А скажите, вопрос не по теме - если я учусь только онлайн и по книгам, но не работаю в ИТ, программистом мне не стать?
Отчего же?
Если я не занимаюсь профессионально стрельбой, не значит же это что из меня плохой охотник выйдет.
Было бы желание.. и время.
0
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
25.12.2013, 02:17  [ТС] #12
То есть я смогу в качестве развлечения выбирать i-го самого низкого пациента из неотсортированного списка за О(n)...
А если серьезно, я не представляю программирование как хобби
Я вот думал о изменчивости вируса ВИЧ, но написать программу не мог - а потом бац через 6 лет оказалось что этим уже занимались или в МИТе, или в Стэнфорде.
Когда учился в меде - постоянно всем говорил - вот можно медицину алгоритмизировать, а потом узнал что еще в далеких годах придумали и ген. алгоритмы и нейронные сети, а в 2014 IBM Watson запускает Гипократа - экспертную систему в медицине - но сам я не мог это придумать, а работая в команде может и помог бы общему делу.
Это, наверное, как в примере с охотником -- только не с одиночкой, а, например, как охота на волков - загоняют их собаки, а отстреливают люди = командная игра.
Думал о том, что психотерапия это неудобно и дорого и http://web.mit.edu/newsoffice/2013/h...way-0918.html# вот пример как это будут менять - использовали биоинформатику.
Сейчас я думаю, а почему бы не создать что-то которое будет разрабатывать, например, новый компилятор или Windows N-ный, а потом и писать обновления под себя - и в этом хаосе мыслей, я повторюсь не представляю как можно зимними вечерами после работы расслабиться у камина и написать пару веселых программ...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 02:17
Привет! Вот еще темы с ответами:

Инжектор инжектит только у меня, но на других он не работает - C++
Вообщем проблема такова, я сделал инжектор, скомпилил, проверил на себе, вроде бы работает, но как я скинул его другу, он проверил его...

у меня она работает, но не тот ответ выводит - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; const int m=4, n=5, r=6; const int maxmn = (m&gt;n) ? m : n; const int maxnr = (n&gt;r) ? n : r; ...

пишу программу, компилирую, у меня на компьютере работает, а на других нет - C++
Создаю пустой проект в Visual Studio c++, добавляю файл c++, пишу программу, компилирую, у меня на компьютере работает, а на других нет, в...

Не могу понять почему у меня не работает sound,delay,nosound.... - C++
Не могу понять почему у меня не работает sound,delay,nosound.... Пишет ошибку Unitms.cpp(7): E2268 Call to undefined function 'sound' ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.12.2013, 02:17
Ответ Создать тему
Опции темы

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