* Опрератор за цикъл for
Публикувано на 28 септември 2008 в раздел С/С++.
Това е най-сложният като синтаксис оператор:
for(<израз1>; <израз2>; <израз3>)
{
оператори;
}
Тук изразите в условието на цикъла са следните:
- израз1 се нарича "начално условие" или "израз за инициализация. Изпълнява се само веднъж преди започването на цикъла.
- израз2 е "условие за проверка". Цикъла ще бъде изпълняван дотогава, докогато това условие връща резултат различен от нула.
- израз3 изменя текущите стойности на параметрите на цикъла.
Очевидно, е че всеки оператор for може да бъде заменен с оператор while по следният начин:
израз1;
while(израз2)
{
оператори;
израз3;
}
Това твърдение се доказва като припомним, че всеки израз, завършен с ";", се превръща в оператор.
Пример: Реализирайте програма, която сумира всички цели числа в даден интервал като използвате цикъл и ги добавяте едно по едно:
int sum = 0;
// Долна граница на интервала
int intmin = 5;
// Горна граница на интервала
int intmax = 15;
for(int i = intmin; i <= intmax; i++)
{
sum = sum + i;
}
printf("The sum of the integers in [%d, %d] is %d\n", intmin, intmax, sum);
Пример: Напишете програма, която въвежда квадратна матрица 3x3 от клавиатурата и извежда главният ѝ диагонал на екрана:
int matrix[3][3];
int i, j;
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
printf("Enter element (%d,%d): ", i+1, j+1);
scanf("%d", &matrix[i][j]);
}
}
printf("\n\nThe lead diagonal is: \n\n");
for(i=0; i<3; i++)
{
for (j=0; j<=i; j++)
{
printf(" ");
}
printf("%d\n", matrix[i][i]);
}
printf("\n\n");
Задача: Променете горния пример, така че да изкарва вторият главен диагонал на матрицата.
Задача: Изведете на екрана самата матрица и транспонираната матрица.
Задача: Напишете програма, която събира две матрици с размерност 3x2.
Задача: В масив а[10] от клавиатурата се въвеждат произволни по знак цели числа. Намерете всички отрицателни числа и запишете абсолютните им стойности в масив b[10] в обратен ред.
Пример: От масив a = {-1, 2, 3, -4, 5, -6, -7, 8, 9, -10) трябва да се получи масив b = {10, 7, 6, 4, 1, 0, 0, 0, 0, 0}
Добави коментар