C, PHP, VB, .NET

Дневникът на Филип Петров


* Цикли while и do-while

Публикувано на 25 септември 2008 в раздел С/С++.

Условните оператори за цикли позволяват многократното повторение на един или група от оператори, т.е да се организира цикъл. Пролжителността на цикъла се управлява от "условие за цикъл". Условието е доустим за езика израз. Когато условието даде резултат 0 цикъла се прекратява.
Цикъла while има следния синтаксис:

	while(<условие>)
	{
		оператори;
	}

Операторът do-wile има анарлогичен синтаксис:

	do
	{
		оператори;
	}
	while(<условие>);

Разликата между while и do-while, е че при do-while тялото на цикъла се изпълнява поне един път, независимо от условието.
Внимание: Обърнете внимание, че е задъжително да има точка и запетая (;) след скобите на while в оператора do-while!

Пример: Въвеждаме последователно 10 числа от клавиатурата и ги записваме в масив int number[10]. Изведете масива в ред обратен на въвеждането им.

	int number[10];
	int i = 0;
	while(i < 10)
	{
		printf("Please enter number %d: ", i+1);
		scanf("%d", &number[i]);
		i++;
	}
	// Показваме редицата на екрана
	printf("\n\nThe row is:\n");
	i=0;
	while(i<10)
	{
		printf("%d   ", number[i]);
		i++;
	}
	// Обръщаме масива
	i=0;
	while(i < 10-(i+1))
	{
		int temp = number[10-(i+1)];
		number[10-(i+1)] = number[i];
		number[i] = temp;
		i++;
	}
	// Показваме новата редица
	printf("\n\nThe reversed row is:\n");
	i=0;
	while(i<10)
	{
		printf("%d   ", number[i]);
		i++;
	}

Пример: Намерете средното аритметично на три числа въведени от клавиатурата.

	double num, s=0;
	int i=1;
	do
	{
		printf("Vavedete chislo N%d: ", i);
		scanf("%lf", &num);
		s += num;
		i++;
    	}
	while (i<=3);
	printf("\n\nSredno aritmetichno: %.2f\n\n", s/3);

Задача: Реализирайте алгоритъма на Еклид за намиране на най-голям общ делител на две естествени числа a и b. Направете нужната проверка за ваидност на входните данни.
Припомняне: Докато a!=b изпълнете: ако a>b то a-=b; в противен случай b-=a. След изпълнението на цикъла НОД ще бъде a.

Задача: Да се напише програма, която установява дали във въведено естествено число има цифрата 5. Направете проверка за валидност на входните данни.
Припомняне: chislo%10 ще ви даде последната цифра на числото, а chislo/10 ще я премахне.

Задача: Въведете символен низ от клавиатурата. Извлечете цифрите от този низ и ги запишете в друг.
Пример: От низа "test12hh32L*" ще се поучи низ "1232"

Задача: Преработете предишната задача така, че да се извличат естествените числа от низа в масив от тип int
Пример: От низа "test12hh32L*" ще се получи масив с два елемента {12, 32}.
Помощ: Използвайте вложени цикли.

 



Добави коментар

Адресът на електронната поща няма да се публикува


*