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

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

Сообщений в этой теме


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

 





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