• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Завтра зачет... помогите, пожалуйста!!!

бородёнок

Ученик
Регистрация
28 Апр 2009
Сообщения
11
Реакции
0
Баллы
0
Завтра зачет... помогите, пожалуйста!!!

сделайте плиз прогу на *dev cpp* или на *delphi*... я в долгу не останусь...

задача:
Сортировка строк текста считанных с stdin. Сохранить в динамической памяти, массив. метод сортировки-выборкой. Результат на stdout.

P.S. очень нужно, вопрос жизни и смерти...
 
500р и будет прога через пол часа! Пиши в асю 803-866
 
грабеж...слишком дорого для студента ;)
 
нууу, народ... я думал вы хакеры и знаете их законы... например тот что информация для всех так же как помощь... не ожидал что здесь есть такие люди как те которые предлагают за деньги... я думал здесь все клёвые... не про всех... но...
 
я не против поделиться... но... когда поджимает... вообще нормальный, знающий человек поймет меня... ведь все бывают начинающими... и бывает то, что реально нужна помощь... но по доверенности... бывают люди которые могут помочь не тем что умеют, а тем что знают...
 
а подумать хотя бы за неделю до судного дня не судьба была? время деньги, чем "срачнее", тем дороже, а на халяву можно только заранее или самому
 
бородёнок ты сам написал, что в долгу не останешься , так что не ной ;) попробуй поторговаться с blake
 
я то в долгу не останусь... однако когда такой информационный бизнес строят, экономика России уходит вдаль... я то поторговаться могу...
халява-образура неопределенная, просто бывают, опять же люди клёвые, но, бывают, грубо говоря, *бавыги знаний*, поэтому и не движеться наука и т.п. в России...



P.S. M@trix™ я ценю твои слова, однако долг заключается не только в определенной науке, я могу подсказать где найти реальную мед.помощь... но бывает что в некоторых науках реально не шаришь...
 
Последнее редактирование:
могу бесплатно дать тебе ссылки на поисковики, в которых немеряно исходников можно найти. а вообще если больше по медицине, то нафига было с компами связываться?
 
сделайте плиз прогу на *dev cpp* или на *delphi*... я в долгу не останусь...

задача:
Сортировка строк текста считанных с stdin. Сохранить в динамической памяти, массив. метод сортировки-выборкой. Результат на stdout.
тогда это будет первый встретившийся в моей жизни хирург(подставить любое другое)-программер. был конечно случай с макроассемблером который преподавали филфаку, но это была 1 лекция и очень нетрезвый препод, просто по пьяни спутал аудитории
 
Ребят я стебанул просто) Ибо щас тут половина тем мои однокурсники :D
 
был конечно случай с макроассемблером который преподавали филфаку, но это была 1 лекция и очень нетрезвый препод, просто по пьяни спутал аудитории
:D интересный случай :D
 
Вот код, комба из двух элементарнейших алгоритмов -
запись в динамический массив (один из вариантов)
сортировка массива (на википедии по "Сортировка выбором" выводит пример алгоритма для целых чисел, адаптируется путем замены "<" на "strcmp")

Собственно код:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char **Array;
int Count = 0;

// Функция добавления элемента в массив
void addElement(char *str)
{
	// Увеличиваем счетчик размера массива
	Count++;

	// Создаем или увеличиваем массив строк	
	if (Array == NULL)
		Array = malloc(sizeof(char *));
	else
		Array = realloc(Array, sizeof(char *) * Count);

	// Добавляем элемент в массив строк
	Array[Count - 1] = calloc(strlen(str) + 1, sizeof(char));

	// Записываем строку в массив
	strcpy(Array[Count - 1], str);
}

// Функция, меняющая две строки местами
void swapElements(int a, int b)
{
	char *tmp = Array[a];
	Array[a] = Array[b];
	Array[b] = tmp;
}

// Функция сортировки
void sortElements()
{
int i, min, j;

	for (i = 0; i < Count - 1; i++)
	{
		/* выбираем начальное значение мин. индекса */
        	min = i;

		/* поиск минимального индекса элемента */
		for (j = i + 1; j < Count; j++)
			if (strcmp(Array[j], Array[min]) < 0)
				min = j;

		/* замена значений местами */
		swapElements(i, min);
	}
}

// Запрос ввода и ввод из stdin следующей строки
int enterElement()
{
char buffer[71];

	printf( "Enter new string, null-length string for sort and stop:\n" );

	gets(buffer);

	if (strlen(buffer) == 0)
		return 0;

	addElement(buffer);

	return 1;
}

// Вывод содержимого массива на stdout
void printElements()
{
int i;
	for(i = 0; i < Count; i++)
		printf( "  String %02d: %s\n", i, Array[i] );
}

// Главная функция
int main()
{
	// Вводим набор строк
	while (enterElement());

	// Выводим массив до сортировки
	printf( "Before sort:\n" );
	printElements();

	// Сортируем
	sortElements();

	// Выводим массив после сортировки
	printf( "After sort:\n" );
	printElements();
	
	return 0;
}

P.S. по поводу хакеров
1. ну тут отнюдь не все хакеры) даже совсем-отнюдь-не все))))
2. информация даром и для всех - это хорошо, а вот "сделайте плиз прогу" это уже не для всех и не всегда, попадаются правда фрики вроде меня))

P.P.S. надеюсь код пригодится ;)

Ребят я стебанул просто) Ибо щас тут половина тем мои однокурсники :D

А вот это ты зря, т.к. я подумал (да и многие другие я думаю), что раз ты за $$ делаешь, то и твоя тема про задачу с Crc32 уже не актуальна... Соответственно помощи ты по большей части из-за этого и не дождался)) (ИМХО)

был конечно случай с макроассемблером который преподавали филфаку, но это была 1 лекция и очень нетрезвый препод, просто по пьяни спутал аудитории

Действительно забавно)))
 
Последнее редактирование:
а если немного изменить условия:
Строки текста, считанных с stdin, сохранить в двусвязный список, массив. Результат на stdout, реверсировать на выводе.
заранее благодарен.
 
а если немного изменить условия:
Строки текста, считанных с stdin, сохранить в двусвязный список, массив. Результат на stdout, реверсировать на выводе.
заранее благодарен.

Постарайся, пожалуйста, больше так не делать (одинаковые посты в разных темах), т.к. очень сложно определить при таком подходе - решена проблема или нет, ок??

Вот код:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct listNode
{
    char *str;
    
    struct listNode *before;
    struct listNode *after;
};

void listInit(struct listNode *node)
{
    node->str = NULL;
    node->before = NULL;
    node->after = NULL;
}

int listPush(struct listNode *node, char *str)
{
    /* Переходим к последнему элементу */
    while(node->after != NULL)
        node = node->after;

    /* Если в элементе не записана строка - то записываем в него, иначе -
       создаём новый элемент */
    if(node->str != NULL)
    {
        /* Выделяем память под новый элемент, записываем указатель на него */
        node->after = malloc(sizeof(struct listNode));
        if(node->after == NULL)
            return 0;
    
        /* Инициализируем новый элемент */
        listInit(node->after);
        /* Записываем в новый элемент указатель на тот, который ранее был последним */
        node->after->before = node;
    
        /* Переключаем node на новый элемент */
        node = node->after;
    }

    /* Выделяем в элементе память под строку */
    node->str = malloc(sizeof(char)*(strlen(str) + 1));
    if(node->str == NULL)
        return 0;
    
    /* Записываем строку в элемент */
    strcpy(node->str, str);
    
    return 1;
}

void listReversePrint(struct listNode *node)
{
    /* Переходим к последнему элементу */
    while(node->after != NULL)
        node = node->after;
    
    /* Выводим все элементы в обратном порядке */
    while(node != NULL)
    {
        if(node->str != NULL)
            printf("STRING: <%s>\n", node->str);
        node = node->before;
    }
}

int main()
{
struct listNode *first;
char str[81];

    /* Создаём корневой элемент списка */
    first = malloc(sizeof(struct listNode));
    if(first == NULL)
    {
        printf("Error!\n");
        return 1;
    }
    listInit(first);
    
    /* Цикл запроса строк */
    do
    {
        printf("Enter string, or '*' to exit: ");
        scanf("%s", str);
        
        if((strlen(str) == 1) && (str[0] == '*'))
            break;
        
    } while(listPush(first, str));
    
    /* Выводим результат - список в обратном порядке */
    printf("Nodes (reverse):\n");
    listReversePrint(first);
    return 0;    
}
 
Спасибо, csbwalker, на счет постов больше так не буду:) с меня пиво:)
 
Назад
Сверху