Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Си.doc
Скачиваний:
11
Добавлен:
04.06.2015
Размер:
2.75 Mб
Скачать

Int top, bottom;

char temp, string[N];

for (top=0, bottom = N-1; top<bottom; top++, bottom--)

{

temp=string[top];

string[top]=string[bottom];

string[bottom]=temp;

}

Эта программа переворачивает строку символов string[N].

Как и в других языках программирования, в Сиразрешено использовать цикл в цикле, при этом циклы должны иметьразныепараметры цикла:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define MIN 6

#define MAX 10000

Int main()

{

Int num, sum, factor;

printf(“\nСовершенные числа от %d до %d:\n”, MIN, MAX);

for (num = MIN; num <= MAX; num += 2)

{

sum = 1;

for (factor = 2; factor < num; factor++)

{

if (num % factor == 0)

sum += factor;

}

if (sum == num)

printf(“\n%d”, num);

}

return 0;

}

Эта программа осуществляет поиск всех совершенныхчисел от6 до10000.

Для досрочногопрекращения выполнения цикла и выхода из него используется оператор прерыванияbreak:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define MIN 2

#define MAX 10000

Int main()

{

for (int n = MIN; n <= MAX; n++)

{

for (int i = MIN; i < n; i++)

{

if (n % i == 0)

break;

}

if (i == n)

printf(“\n%d”, n);

}

return 0;

}

Эта программа осуществляет поиск всех простыхчисел от2до1000.

Во вложенных циклах команда breakпрекращает выполнение только того цикла, вкотором стоит.

Для пропускаодной итерации цикла (перехода к следующей итерации) используется команда продолженияcontinue:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define MIN 3

#define MAX 100

Int main()

{

for (int number = MIN; number <= MAX; number++)

{

if (number % 3)

continue;

printf(“\n%d”, number);

}

return 0;

}

Эта программа осуществляет поиск всех чисел, кратныхтрем, от3до100.

Примеры:

1.Вычислить Sn– суммуn первых натуральных чисел

Алгоритм:Sn = 0

для i от 1 до n выполнять

Sn = Sn + i

Программа:

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{

int n, sn=0;

printf(“\nДо какого числа суммировать:”);

scanf(“%d”, &n);

for (int i = 1; i <= n; i++)

{

sn+=i;

}

printf(“\nСумма чисел от 1 до %d равна %d ”, n, sn);

return 0;

}

  1. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методомобменной сортировки (пузырька):

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

int main()

{

int vector_min, vector_max, temp;

time_t t; // текущее время для инициализации

// генератора случайных чисел

srand((unsigned) time(&t)); // инициализация генератора // случайных чисел

printf("\nВведите нижнюю границу:");

scanf(“%d”, &vector_min);

printf("\nВведите верхнюю границу:");

scanf(“%d”, &vector_max);

printf("\nВведите размер вектора:");

scanf(“%d”, &n);

int vector[n];

printf("\nИсходный вектор:\n");

for (int i=0; i<n; i++)

{

// получение случайного числа в диапазоне

// от vector_min до vector_max

m = vector_max – vector_min + 1;

vector[i]=rand()% m + vector_min;

printf(" %5d", vector[i]);

}

printf("\n");

for (int m=n-2; m>=0 ;m--)

for (int i=0; i<=m ;i++)

if (vector[i] > vector[i+1])

{

temp=vector[i];

vector[i]=vector[i+1];

vector[i+1]=temp;

}

printf("\nОтсортированный вектор:\n");

for (int i=0; i<n; i++)

{

printf(" %5d", vector[i]);

}

printf("\n");

return 0;

}

  1. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n]методомШелла(обменная сортировка с убывающим шагом). В этом случае массив делится на группы подваэлемента и производится сортировка в каждой группе: максимальный элемент ставится на второе место. После этого массив делится на группы почетыреэлемента, и они снова сортируются. Количество элементов в сортируемой группе удваивается до тех пор, пока не остается одна группа, включающая все элементы массива, которая и сортируется окончательно:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]