0 / 0 / 1
Регистрация: 07.05.2013
Сообщений: 83
1

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

24.12.2013, 02:26. Показов 1713. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2013, 02:26
Ответы с готовыми решениями:

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

Почему у меня не работает программа?
блин что тут не так? #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; const int...

Один и тот же код не работает в разных компиляторах
Один и тот же код, но в FPS4 работает, а в интеле и компаке нет. В чем может быть проблема? ...

У клиента не работает роутер. У Меня дома работает. TRENDnet TEW-432BRP
Добрый день! У клиента установлен TRENDnet TEW-432BRP. Настроен для подключения к Beeline, но...

11
Форумчанин
Эксперт CЭксперт С++
8194 / 5044 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.12.2013, 02:28 2
Дело в том, что С++ компилятор не преобразовывает явно память, выделяемую malloc, а вот С компиляторы это делают.
Вам нужно создать проект с языком С.
0
0 / 0 / 1
Регистрация: 07.05.2013
Сообщений: 83
24.12.2013, 02:31  [ТС] 3
Да я вот не знаю его, а проверить надо - как быть?
0
Форумчанин
Эксперт CЭксперт С++
8194 / 5044 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.12.2013, 02:39 4
И кстати, strdup - это GNU extension, в VS вы скорее всего не скомпилите.
Вам лучше все-таки попробовать решить все самим.
0
0 / 0 / 1
Регистрация: 07.05.2013
Сообщений: 83
24.12.2013, 02:52  [ТС] 5
Обычо я так и делаю - но мне неделю снится эта задача - и теперь мне просто уже интересно что же там у меня не так в моем решении
0
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 13:11 6
Цитата Сообщение от Aliru Посмотреть сообщение
Да я вот не знаю его, а проверить надо - как быть?
Изменить расширение файла (компилируемого) на .c. В 10 студии компилируется без ошибок (с предупреждением насчёт strdup).

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

Спасаю жизни в рабочее время))) поэтому не отвечал.
Утром попытался - снова выдает ошибку.
Я, к сожалению, не могу понять - как это сделать, наверное - изменил в названии на .с но ошибка выдается типа файл с, а компилятор с++.
У меня Вижуал студио 2005
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
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
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 16:40 9
Цитата Сообщение от Aliru Посмотреть сообщение
Я, к сожалению, не могу понять - как это сделать, наверное - изменил в названии на .с но ошибка выдается типа файл с, а компилятор с++.
У меня Вижуал студио 2005
С 2005 студией незнаком, поэтому не знаю, как там компилятор выбрать. В 10-й студии в Свойствах проекта - С/С++ - Дополнительно - Компилировать как, тут можно выбрать: Компилировать как код С или как код С++ (если это выбрать, то будет компилироваться выбранным компилятором, вне зависимости от расширения файла). Если стоит по умолчанию, то, как я понимаю, компилятор автоматически будет выбираться, в зависимости от расширения.
1
0 / 0 / 1
Регистрация: 07.05.2013
Сообщений: 83
24.12.2013, 17:05  [ТС] 10
А скажите, вопрос не по теме - если я учусь только онлайн и по книгам, но не работаю в ИТ, программистом мне не стать?
Или чудеса бывают?
0
Форумчанин
Эксперт CЭксперт С++
8194 / 5044 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.12.2013, 01:22 11
Цитата Сообщение от Aliru Посмотреть сообщение
А скажите, вопрос не по теме - если я учусь только онлайн и по книгам, но не работаю в ИТ, программистом мне не стать?
Отчего же?
Если я не занимаюсь профессионально стрельбой, не значит же это что из меня плохой охотник выйдет.
Было бы желание.. и время.
0
0 / 0 / 1
Регистрация: 07.05.2013
Сообщений: 83
25.12.2013, 02:17  [ТС] 12
То есть я смогу в качестве развлечения выбирать i-го самого низкого пациента из неотсортированного списка за О(n)...
А если серьезно, я не представляю программирование как хобби
Я вот думал о изменчивости вируса ВИЧ, но написать программу не мог - а потом бац через 6 лет оказалось что этим уже занимались или в МИТе, или в Стэнфорде.
Когда учился в меде - постоянно всем говорил - вот можно медицину алгоритмизировать, а потом узнал что еще в далеких годах придумали и ген. алгоритмы и нейронные сети, а в 2014 IBM Watson запускает Гипократа - экспертную систему в медицине - но сам я не мог это придумать, а работая в команде может и помог бы общему делу.
Это, наверное, как в примере с охотником -- только не с одиночкой, а, например, как охота на волков - загоняют их собаки, а отстреливают люди = командная игра.
Думал о том, что психотерапия это неудобно и дорого и http://web.mit.edu/newsoffice/... 0918.html# вот пример как это будут менять - использовали биоинформатику.
Сейчас я думаю, а почему бы не создать что-то которое будет разрабатывать, например, новый компилятор или Windows N-ный, а потом и писать обновления под себя - и в этом хаосе мыслей, я повторюсь не представляю как можно зимними вечерами после работы расслабиться у камина и написать пару веселых программ...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2013, 02:17
Помогаю со студенческими работами здесь

При включении компа у меня не работает монитор, но нормально работает ТВ-выход
Уже несколько дней рву волосы на голове.... Такая проблемка: при включении компа у меня не...

Логин работает в скайп онлайн, но не работает в программе
Собственно, для входа в онлайн скайп мне нужен пароль и логин. Логином является телефон или адрес...

Почему у меня домо не работает! а в Колледже работает?
Написал в УЗ прогу! выводит текст Ассемблер по середине экрана! пришёл домой, написал её начал...

Не могу понять почему не работает. Создаю игру Пятнашки. И ничего у меня не работает. И ошибки при запуске выдает
Не могу понять почему не работает. Создаю игру Пятнашки. И ничего у меня не работает. И ошибки при...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru