Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массивы 
:(
    Опции темы
blooddss
Дата 1.6.2011, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 1.6.2011

Репутация: нет
Всего: нет



Задача:Функция находит в строке фрагменты, содержащие последовательность одинаковых символов длиной более 3 и возвращает динамичесмкий массив указателей на такие фрагменты
Проблемма состоит в том что компилируеться,но ничего не выводит,подскажите пожалуйста что не так..
Код


Код

#include <stdio.h> 
#include <conio.h> 
#include <string.h> 
#include <alloc.h> 
  
  
void func (char *str) 

int i, n, k; 
for (i = 0; str[i] != '\0'; i++) 

if (str[i] == str[i++] == str[i+2]) 

for (int j = i+2; str[j] == str[j++]; j++) 

n = j++; 

float *arr = (float *) malloc (n*sizeof (float )); 
for (k=0, i; k < n; k++, i++) 

arr[k] = str[i]; 

float **parr = (float **) malloc (n* sizeof (float *)); 
for (k = 0; k < n; k++) 

parr [k] = & arr [k]; 

for (k=0; k<n; k++) 

printf ("%f", parr [k]); 




  
  
void main() 

clrscr(); 
float **parr; 
printf ("Данная пррограмма находит в строке 3 повторяющихся символа и выводит динамический массив указателей на такой участок строки\n\n"); 
char arr[30]; 
printf ("Введите строку\n"); 
gets (arr); 
func (arr); 
  
getch(); 
free (parr); 
}  



Это сообщение отредактировал(а) bsa - 1.6.2011, 16:17
PM MAIL   Вверх
bsa
Дата 1.6.2011, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



blooddss, оформлять код тебя не учили?

Совсем ничего не выводит? Даже "Введите строку"?

кстати, "void main()" это не правильно, надо писать "int main()".
PM   Вверх
xvr
Дата 1.6.2011, 16:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(blooddss @  1.6.2011,  10:50 Найти цитируемый пост)
if (str[i] == str[i++] == str[i+2])

Прелестная конструкция  smile Мало того, что она делает не то, что ожидалось, она еще это делает не детерминированным способом  smile 

PM MAIL   Вверх
porshegt3
Дата 10.6.2011, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 28.12.2009
Где: Кировоград

Репутация: -1
Всего: -1



для начала оформи верно, потом можно рассмотреть твой код.
PM MAIL ICQ Skype   Вверх
borisbn
Дата 11.6.2011, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



>if (str[i] == str[i++] == str[i+2]) {
Результат первого сравнения всегда true. Дальше str[i+2] сравнивается с ним. Считаешь это правильным? 
> for (int j = i+2; str[j] == str[j++]; j
++)
str[j] всегда равно str[j++], т.к. ++ отработает после сравнения. Нужно str[j+1]


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 13.6.2011, 18:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(borisbn @  11.6.2011,  03:22 Найти цитируемый пост)
str[j] всегда равно str[j++], т.к. ++ отработает после сравнения.

А вот и неверно. Это типичное UB.
PM   Вверх
borisbn
Дата 13.6.2011, 19:20 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(bsa @  13.6.2011,  18:52 Найти цитируемый пост)
А вот и неверно. Это типичное UB.

в принципе, конечно UB, но... мы ж не в сферическом вакууме  smile 
http://liveworkspace.org/code/f269cf8d97cf...bf2aaeb2c0489fc


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mes
Дата 13.6.2011, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(borisbn @  13.6.2011,  18:20 Найти цитируемый пост)
но... мы ж не в сферическом вакууме   

нда...


--------------------
PM MAIL WWW   Вверх
bsa
Дата 13.6.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(borisbn @  13.6.2011,  19:20 Найти цитируемый пост)
в принципе, конечно UB, но... мы ж не в сферическом вакууме

да. сегодня один результат, завтра другой, после завтра третий. Оно надо? Мне нет. Проще написать j+1 и спать спокойно.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0758 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.