IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Последовательность чисел, Си
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Вводится последовательность ненулевых целых чисел. Признак конца ввода - 0. Напечатать сначала все отрицательные, а затем все положительные числа заданной последовательности.

У меня, чтобы концом ввода сделать 0, числа записываются в строку. Но правильно ли я ищу отрицательные числа.....


#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
char *otr_pol(char *str)
{
char str1[20];
int i, j;
for (i = 0, j = 0;i < strlen(str); i++)
if (str[i] < '0')
str1[j++] = str[i];

for (i = 0; i < strlen(str); i++)
if (str[i] > '0')
str1[j++] = str[i];

return str1;

}


void main()
{
char str[20]; int i = -1;
printf ("vvedite stroky\n");
do
i++;
while ((str[i] = getchar())!='0');

printf("%s",otr_pol(str));


}


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
меня, чтобы концом ввода сделать 0, числа записываются в строку.

А просто числа нельзя вводить? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(Ozzя @ 6.06.2007 15:39) *

А просто числа нельзя вводить? blink.gif

rolleyes.gif эээ....кажется я стормозила....спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


насчёт ввода последовательности чисел, заканчивющихся 0 - у меня получается бесконечный ввод....


printf ("vvedite \n");
do
;
while ((n=getchar())!=0);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






А вот так:
...
do {

scanf("%d", &n);

} while(n);
...
?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Почему у меня после ввода элементов ничего не выводится?


#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int n;
printf ("vvedite \n");
do {
scanf("%d", &n);
}
while (n);

while (n)
{
if (n<0)
printf ("%c%d", ' ',n);
}

while (n)
{
if (n > 0)
printf("%c%d",' ', n );
}


}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Условие окончания ввода - 0. И, насколько я понимаю, n стало равным 0. И в СИ 0 - это false.
Соответственно
 while (n) // здесь сразу ложь  и выскочили из цикла
{
if (n<0)
printf ("%c%d", ' ',n);
}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
Почему у меня после ввода элементов ничего не выводится?
А ты что, что-то где-то сохраняла, чтобы потом выводить? Максимум, что тебе известно - это "последнее число = 0", так для этого цикл ввода вообще не нужен, сразу печатай ноль, и завершай программу.

Задача твоя в чем? Сделать ввод последовательности в массив и его обрабатывать, или все-же работать с вводимыми элементами "на лету"?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 7.06.2007 10:18) *

Задача твоя в чем? Сделать ввод последовательности в массив и его обрабатывать, или все-же работать с вводимыми элементами "на лету"?

не...в массив записывать не нужно...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.11.2020 5:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name