Задача: Даны натуральное [latex]n[/latex], действительные числа [latex]a_{1},…,a_{n}[/latex]. Вычислить: [latex]a_{1}^{2},a_{1}a_{2},…,a_{1}a_{n};[/latex]
Значения | Результат |
53 4 6 -1 1.2 8 0 9 | 9 12 18 -3 3.6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> using namespace std; int main() { int n; cin >> n; double x, y; cin >> x; cout << x*x << " "; for(int i=0; i<(n-1); i++){ cin >> y; cout << x*y << " "; } return 0; } |
Для решения этой задачи воспользуемся циклом for. Сначала прочитаем n. После этого прочитаем первую переменную и напечатаем ее квадрат. Далее будет цикл, в котором буду читаться остальные n переменных и печататься их произведения на первую переменную.
К сожалению, так нельзя. Если (по условию задачи) во входном потоке первым идёт число n, то (куда денешься?) его нужно ввести. Но можно не использовать. Кроме того, кто сказал, что нужно обработать все числа входного потока? Сказано только про первые n+1. Остальные возможно будут обработаны иначе.
Готово.
Хорошо. Осталось избавиться от массивов. Тема ведь потоковая обработка, а не массивы.
Это несложно. Достаточно запомнить нулевой и текущий элемент в обычных переменных.
Готово.
Зачтено