![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вводится последовательность ненулевых целых чисел. Признак конца ввода - 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));
}
|
Ozzя |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата меня, чтобы концом ввода сделать 0, числа записываются в строку. А просто числа нельзя вводить? ![]() |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
18192123 |
![]()
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
насчёт ввода последовательности чисел, заканчивющихся 0 - у меня получается бесконечный ввод....
printf ("vvedite \n");
do
;
while ((n=getchar())!=0);
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
А вот так:
...
do {
scanf("%d", &n);
} while(n);
...
? |
18192123 |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Почему у меня после ввода элементов ничего не выводится?
#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 );
}
}
|
Ozzя |
![]()
Сообщение
#7
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Условие окончания ввода - 0. И, насколько я понимаю, n стало равным 0. И в СИ 0 - это false.
Соответственно while (n) // здесь сразу ложь и выскочили из цикла
{
if (n<0)
printf ("%c%d", ' ',n);
}
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата Почему у меня после ввода элементов ничего не выводится? А ты что, что-то где-то сохраняла, чтобы потом выводить? Максимум, что тебе известно - это "последнее число = 0", так для этого цикл ввода вообще не нужен, сразу печатай ноль, и завершай программу.Задача твоя в чем? Сделать ввод последовательности в массив и его обрабатывать, или все-же работать с вводимыми элементами "на лету"? |
18192123 |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 7:12 |