Задача
Даны натуральное число [latex]n[/latex], действительная квадратная матрица порядка [latex]n[/latex]. Построить последовательность [latex] b_1,..,b_n[/latex] из нулей и единиц, в которой [latex] b_i = 1[/latex] тогда и только тогда, когда в [latex]i[/latex] — строке матрицы есть хотя бы один отрицательный элемент.
Тест
при [latex]n = 3[/latex]
[latex]b_1[/latex] | [latex]b_2[/latex] | [latex]b_3[/latex] | результат |
0 | 0 | 0 | 0 1 0 |
0 | -1 | 0 | |
0 | 0 | 0 |
при [latex]n = 4[/latex]
[latex]b_1[/latex] | [latex]b_2[/latex] | [latex]b_3[/latex] | [latex]b_4[/latex] | результат |
0 | 0 | -1 | 0 | 1 1 0 1 |
0 | -4 | 0 | 0 | |
0 | 0 | 0 | 0 | |
-8 | 0 | 0 | 0 |
при [latex]n=3[/latex]
[latex]b_1[/latex] | [latex]b_2[/latex] | [latex]b_3[/latex] | результат |
-0.75 | 0.98 | 4.67 | 1 0 1 |
4.89 | 0 | 3.75 | |
-9.85 | 0 | 2.65 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <iostream> #include <math.h> using namespace std; int main() { int n; cin >> n; double z[n][n], b[n]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cin >> z[i][j]; } } for (int i = 0; i < n; i++) { b[i] = 0; for(int j = 0; j < n; j++) if(z[i][j] < 0) { b[i] = 1; break; } } for (int i = 0; i < n; i++) { cout << b[i] << " "; } return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); int n=in.nextInt(); double[] b = new double[n]; double[][] z = new double[n][n]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { z[i][j] = in.nextDouble(); } } for (int i = 0; i < n; i++) { b[i] = 0; for (int j = 0; j < n; j++) if(z[i][j] < 0) { b[i] = 1; break; } } for (int i = 0; i < n; i++) { System.out.printf("%.1f ",b[i]); } } } |
Ссылка на C++:http:http://ideone.com/KzTDgC
Ссылка на Java: http://ideone.com/EIZdZt
Решение:
Вводим квадратную матрицу [latex] z[n][n][/latex] порядка [latex]n[/latex].Далее в цикле описываем, что если :
20 |
if(z[i][j] < 0) |
то каждый элемент [latex]b_i = 1[/latex], в противном случае [latex]b_i = 0[/latex].Далее в input вводим количество элементов и соответствующие значения и получаем ответ.
Для ускорение работы, в цикле (20 — 23 ) можно использовать break. Так же можно обойтись только одним циклом, определять знак во время ввода и таким образом определять элемент b_i.
Ума не приложу, почему у Вас аватарка не обновляется. Волшебство какое-то.
Молодец, но пока ставлю 8. Если исправите недочёты — напишите комментарий об этом и я повышу оценку:
— действительная матрица, но в тестах только целые числа
— нужно добавить метки , которые отличают задачу от других
— break и вправду нужен, Катя права
— отступы
— не следует в одном цикле вычислять и печатать b[i].
Лучше это делать в отдельных циклах. Слишком часто такая смесь приводит к тому, что в массиве не те элементы, которые напечатаны.
Исправила
Пожалуйста, сделайте правильные отступы в коде программы.