Другие языки программирования и технологии
Однопроходный алгоритм на последовательности (без массива) на С++
С клавиатуры вводятся несколько чисел (до первого нуля) . Определить, самые близкие по значению к нулю отрицательное и положительное числа.
Уже решалась точно такая же задача:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");
int x, MaxNeg = 0, MinPos = 0;
cout << "Введите числа последовательности (0 - конец ввода): " << endl;
do
{
cin >> x;
if (x < 0 && (!MaxNeg || x > MaxNeg))
MaxNeg = x;
if (x > 0 && (!MinPos || x < MinPos))
MinPos = x;
} while (x);
if (!MaxNeg)
cout << "Отрицательные числа не вводились. " << endl;
else
cout << "Самое близкое к нулю отрицательное число: " << MaxNeg << endl;
if (!MinPos)
cout << "Положительные числа не вводились. " << endl;
else
cout << "Самое близкое к нулю положительное число: " << MinPos << endl;
getch();
return 0;
}
Попробуйте воспользоваться поиском:
----------
Добавлено.
О!! ! О_о Так это даже ваш вопрос был.
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");
int x, MaxNeg = 0, MinPos = 0;
cout << "Введите числа последовательности (0 - конец ввода): " << endl;
do
{
cin >> x;
if (x < 0 && (!MaxNeg || x > MaxNeg))
MaxNeg = x;
if (x > 0 && (!MinPos || x < MinPos))
MinPos = x;
} while (x);
if (!MaxNeg)
cout << "Отрицательные числа не вводились. " << endl;
else
cout << "Самое близкое к нулю отрицательное число: " << MaxNeg << endl;
if (!MinPos)
cout << "Положительные числа не вводились. " << endl;
else
cout << "Самое близкое к нулю положительное число: " << MinPos << endl;
getch();
return 0;
}
Попробуйте воспользоваться поиском:
----------
Добавлено.
О!! ! О_о Так это даже ваш вопрос был.
p,o,s:integer;
begin
p=9999;
o=-9999;//тут можно и побольше числа, если предполагается вводить до миллионов)
while s{}0 do begin
readln(s);
if (s{0) and (s{o) then o:=s;
if (s}0) and (s}p) then p:=s;
end;
writeln(p:10,o:10);
end.
фигурные скобки заменяем угловыми) .
upd. не прочитал, что на си) ) поправляемся.
int main()
{
int p,o,s;
p=9999;
o=-9999;//тут можно и побольше числа, если предполагается вводить до миллионов)
while s{}0 do begin
scanf("%d\n",&s);
if ((s{0)&&(s{o)) then o=s;
if ((s}0)&&(s}p)) then p=s;
}
printf("%d\t%d\t",p,o);
getch();
}
begin
p=9999;
o=-9999;//тут можно и побольше числа, если предполагается вводить до миллионов)
while s{}0 do begin
readln(s);
if (s{0) and (s{o) then o:=s;
if (s}0) and (s}p) then p:=s;
end;
writeln(p:10,o:10);
end.
фигурные скобки заменяем угловыми) .
upd. не прочитал, что на си) ) поправляемся.
int main()
{
int p,o,s;
p=9999;
o=-9999;//тут можно и побольше числа, если предполагается вводить до миллионов)
while s{}0 do begin
scanf("%d\n",&s);
if ((s{0)&&(s{o)) then o=s;
if ((s}0)&&(s}p)) then p=s;
}
printf("%d\t%d\t",p,o);
getch();
}
Похожие вопросы
- Найти наибольшую возрастающую последовательность в массиве С++
- Информатика. Программирование. Обработка массивов данных. Помогите составить алгоритм и прог. код к нему.
- алгоритм... по нахождению общих элементов двух массивов
- Помогите найти алгоритм подбора множителей к числам заданного массива, сумма произведений которых равна заданному числу
- Дан массив MAS(9). Обработать его за алгоритмом( в пояснениях) В Pascal желательно!!!=))
- Вывести последовательность из 6 элементов, чтобы значения выбирались случайно из массива , но при этом не повторялись с#
- Нужен алгоритм перебора массива.
- Дан массив а1,...а50. Найти в нем последовательности.. смотрите внутри. Задание на Си. Подскажите с чего начать
- Найти в массиве наибольшую последовательность четных чисел. С++
- Нужно перемешать массив на C++. Есть массив, его нужно случайным образом перемешать. Нужен именно КОД, а не алгоритм