Что будет выведено на экран после исполнения фрагмента программы int i, j; for(j = 1; j < 3; j++) { i = 0; while((i += 8) < = 20) printf("%d ", j + ; }
Происходить будет так: I) j = 1 i = 0; while (i += 8) <= 20) 1) i = 0 + 8 = 8 (j + i--) = 1 + 8 = 9 - первое число, которое выведется. Т.к. (j + i--), то после вывода на экран 9, i уменьшится на 1. Т.е. i станет = 7. 2) i = 7 + 8 = 15 (j + i--) = 1 + 15 = 16 - второе число, которое выведется. После вызова ф-ии printf, i станет = 14. II) j = 1; i обнулится всё будет аналогично, только j уже будет = 2.
С использованием оператора if: #include <iostream> using namespace std; int main(){ int x, y; setlocale(LC_ALL, "Russian"); cout << "Введите координату X: "; cin >> x; cout << "Введите координату Y: "; cin >> y; if ((x > 0) && (y > 0)) { cout << "Точка находится в I четверти."; } else if ((x < 0) && (y > 0)) { cout << "Точка находится в II четверти."; } else if ((x < 0) && (y < 0)) { cout << "Точка находится в III четверти."; } if ((x > 0) && (y < 0)) { cout << "Точка находится в IV четверти."; } system("pause"); return 0;}
С использованием тернарного оператора: #include <iostream> using namespace std; int main(){ int x, y; setlocale(LC_ALL, "Russian"); cout << "Введите координату X: "; cin >> x; cout << "Введите координату Y: "; cin >> y; x > 0 && y > 0 ? cout << "Точка находится в I четверти" << endl : cout; x < 0 && y > 0 ? cout << "Точка находится в II четверти" << endl : cout; x < 0 && y < 0 ? cout << "Точка находится в III четверти" << endl : cout; x > 0 && y < 0 ? cout << "Точка находится в IV четверти" << endl : cout; system("pause"); return 0; }
Насчет тернарного не полностью уверен, так как вообще им не пользуюсь, хотя ответ выдает верный. Раз вы сказали, что они не могут быть 0, то учитывать, что точки могут лежать на осях или в начале координат не буду.
Я не стану указывать эпитетов к своему коду, пусть он сам скажет за себя. Алгоритм такой: просматриваем массив от конца к началу. И завершаем работу, как только встретим отрицательный элемент. А если так и не встретим до начала массива, значит таких элементов в массиве нет.
const n=20; { размер массива } var a:array[1..n] of integer; i:integer; found:boolean; begin Randomize; Writeln('Элементы массива'); for i:=1 to n do begin a[i]:=Random(21)-10; { случайное число на интервале [-10;10] } Write(a[i]:4) end; Writeln; { собственно задание } i:=n; repeat found:=(a[i]<0); Dec(i) until (i=0) or found; if found then Writeln('Номер элемента равен ',i+1) else Writeln('Отрицательных элементов нет') end.
Происходить будет так:
I) j = 1
i = 0;
while (i += 8) <= 20)
1) i = 0 + 8 = 8
(j + i--) = 1 + 8 = 9 - первое число, которое выведется.
Т.к. (j + i--), то после вывода на экран 9, i уменьшится на 1.
Т.е. i станет = 7.
2) i = 7 + 8 = 15
(j + i--) = 1 + 15 = 16 - второе число, которое выведется.
После вызова ф-ии printf, i станет = 14.
II) j = 1;
i обнулится всё будет аналогично, только j уже будет = 2.