Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2009, 22:44   #1
S@muel
 
Регистрация: 29.03.2009
Сообщений: 6
По умолчанию Цикл do while

Задача с использованием цикла do while.

Код:
    #include <stdio.h>
      #include <conio.h>
      #include <limits.h>
       void main()
      {
      clrscr ();
      int a, y=INT_MAX;

      printf("Enter values:\n");
      do {
       scanf("%d", &a);
       if(a > 0 && a < y)
	 y = a;
	  }
	  while(a);

   y == INT_MAX ?  printf("All values < 0 or values not entered!\n") : printf("Min = %d\n", y);

     getch();
      }

Должна находить минимальный элемент во введенной с клавиатуры последовательности положительных чисел, окончание ввода последовательности, ввод 0.

Вводимые данные: Ввод в положительной последовательности отрицательных чисел. Ввод отрицательной последовательности.

Результат: С положительными числами выдает минимальное значение. С положительными и отрицательными числами выдаёт минимальное значение положительных чисел, отрицательные пропускает. С отрицательными числами при вводе ноля выдает сообщение, что программа работает только со значениями которые больше ноля.

Программа работает отлично!
Вопрос: Можно ли эту программу написать проще без использования библиотеки limits.h и функции INT_MAX?
Заранее благодарен.
S@muel вне форума Ответить с цитированием
Старый 29.03.2009, 23:01   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>

int main(){
int a,min;
printf("Enter values:\n");
min = -1;
do
{
 scanf("%d",&a);
 if(a>0 && (min==-1 || a<min)) min = a;
} while(a);

min==-1 ? printf("All values < 0 or values not entered!\n") : printf("Min = %d\n", min);

getch();
return 0;
};
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цикл if... then..else DeDoK Общие вопросы Delphi 8 11.10.2008 11:31
Цикл For Each Bu$ter Microsoft Office Excel 5 24.09.2008 16:49
Цикл Sota Паскаль, Turbo Pascal, PascalABC.NET 1 24.03.2008 19:50
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34