* Опрератор за цикъл 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}
Добави коментар