![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
добавить X ко всем негативным элементов списка
X-это любое число которое введет пользователь. Можно сделать и в формах. Благодарю! |
|
#2
|
||||
|
||||
|
Что такое Негативный элемент списка?
|
|
#3
|
|||
|
|||
|
Негативный элемент списка, это список который в котором содержаться числа целого типа положительные и отрецательные, пользователь сам вводит этот как бы массив .... (пример 0, 2, 5, -4, -8) вот это список с негативными элементами, поставить перед ними Х .. (Х тоже вводит пользователь например 22) и в итоге список будет выгладить так
0, 2, 5, 22, -4, 22, -8 |
|
#4
|
||||
|
||||
|
Это так сложно сделать самому?
Как говорил наш профессор: "Не переживайте, мы вас отчислим, за год хорошенько подготовитесь, в армию сходите, придете восстановитесь и все сдадите". Последний раз редактировалось M.A.D.M.A.N., 02.07.2013 в 20:03. |
|
#5
|
||||
|
||||
|
А теперь сравните первоначальное условие:
Цитата:
Цитата:
Ладно... Можно задачу реализовать через динамический массив, но там придется тогда вставку элемента придется реализовывать. Несложно, но лишний код. А можно загнать исходные элементы в StringList и там уже все будет просто ибо методы вставки уже реализованы. |
|
#6
|
||||
|
||||
|
Двусвязный список лучше сделать.
|
|
#7
|
|||
|
|||
|
также можно просто к негативным элементам приплюсовать новый элемент ... 22, -30, 5 Х=5 ( 22, -25, 5)
я могу на си написать но на делфи нет навыков ( |
|
#8
|
||||
|
||||
|
Цитата:
Код:
Edit1.Text:= StringReplace(Edit1.Text,'-', Edit2.Text + ', -', [rfReplaceAll]); ![]() |
|
#9
|
||||
|
||||
|
Значит напиши на си, скидывай сюда, переведут тебе.
|
|
#10
|
|||
|
|||
|
Цитата:
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <malloc.h>
#define QUE struct que /* tip dannih */
QUE
{
int info;
QUE *next;
};
int x;
void insert(QUE **q, int item);
void display(QUE * q);
QUE * create_list();
QUE *q=NULL; /* ob'yavlenie spiska */
/* ======= funktsiya vivoda spiska ====== */
void display(QUE * q)
{
QUE * current = q;
printf("\nLIST=");
if (current)
{
while(current)
{
printf("%d-->", current->info);
current = current ->next;
}
printf("NULL");
}
else
printf("pustoy");
printf("\n");
}
/* ====== funktsiya obrabotki spiska ====== */
void add_odd(QUE **q)
{
QUE * current = *q;
QUE * new_node;
while(current)
{
if(current->info < 0)
{
new_node=(QUE*) malloc (sizeof (QUE));
new_node->info = x;
if (current)
{
new_node->next=current->next;
current->next=new_node;
}
else
{
*q=new_node;
(*q)->next=NULL;
}
}
current = current ->next;
}
}
/* ====== funktsiya sozdaniya spiska ====== */
QUE * create_list()
{
QUE * list=NULL;
int done=1, info, c;
printf("Creation of list:\n");
while(done)
{
printf("Add new element? (Y/N) ore (E)");
c=getch();
c=toupper(c);
switch(c)
{
case 'Y':printf("\n Element=");
scanf("%d", &info);
insert(&q, info);
break;
case 'N':
done=0;
break;
case 'E':
printf("\n X=");
scanf("%d", &x);
break;
}
}
return (list);
}
/* === funktsiya dobavleniya elementa k spisku === */
void insert (QUE **q, int item)
{
QUE *current=*q;
QUE *previous=0;
QUE *new_node;
QUE *x;
while(current)
{
previous=current;
current=current->next;
}
new_node=(QUE*) malloc (sizeof (QUE));
new_node->info=item;
if (previous)
{
new_node->next=previous->next;
previous->next=new_node;
}
else
{
*q=new_node;
(*q)->next=0;
}
}
int main()
{
create_list();
display(q);
add_odd(&q);
if(q)
display(q);
getch();
return 0;
} |
|
#11
|
||||
|
||||
|
Ну че-то многовато мне кажется.
Вот вариант с массивом: Код:
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
Var
Num: Array of Integer;
i,j: Integer;
begin
Randomize;
SetLength(Num, 10);
for i := 0 to High(Num)
do begin
Num[i] := Random(100) - 50;
WriteLn(Num[i]);
end;
i := 0;
while i <= High(Num)
do begin
if Num[i] < 0
then begin
SetLength(Num, Length(Num) + 1);
for j := High(Num) downto i
do Num[j] := Num[j - 1];
Num[i] := 22;
Inc(i);
end;
Inc(i);
end;
WriteLn;
for i := 0 to High(Num)
do WriteLn(Num[i]);
ReadLn;
end. |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
flasher167 (02.07.2013)
| ||
|
#12
|
|||
|
|||
|
Цитата:
|
|
#13
|
||||
|
||||
|
Ну и замените рандомный массив на ваш готовый и подставьте значение ввода вместо 22.
|
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
flasher167 (02.07.2013)
| ||
|
#14
|
|||
|
|||
|
не получается переделать... нужно без использования массива..
|
|
#15
|
||||
|
||||
|
Тогда как мэдмэн советовал, двусвязаный список надо делать.
|