fork(1) download
  1. #include <iostream>
  2.  
  3. void print_portrait(int *ia, int *ja, int lines); //выводит список ненулевых елементов
  4. //(для проверки)
  5.  
  6. bool check_element(int *ia, int *ja, int line, int row); //Возвращает истину если елемент
  7. //в строке line и столбце row
  8. //не нулевой
  9.  
  10. int main() {
  11.  
  12. int ia[] { 0, 3, 3, 5}; //Масив с позициями начала строки
  13. int ja[] { 1, 3, 7, 5, 7}; //Масив с номерами столбцов ненулевых елементов
  14.  
  15. print_portrait(ia, ja, 4);
  16.  
  17. std::cout << check_element(ia, ja, 0, 0) << std::endl
  18. << check_element(ia, ja, 0, 1) << std::endl
  19. << check_element(ia, ja, 0, 6) << std::endl
  20. << check_element(ia, ja, 0, 7) << std::endl
  21. << check_element(ia, ja, 2, 7) << std::endl
  22. << check_element(ia, ja, 2, 8) << std::endl;
  23.  
  24. return 0;
  25. }
  26.  
  27.  
  28.  
  29. void print_portrait(int *ia, int *ja, int lines)
  30. {
  31. for (int i{}; i < lines; i++)
  32. for(int j{ ia[i] }; j < ia[i+1]; j++)
  33. std::cout << i << ':' << ja[j] << " - not zero" << std::endl;
  34. }
  35.  
  36. bool check_element(int *ia, int *ja, int line, int row)
  37. {
  38. for(int j{ ia[line] }; j < ia[line+1]; j++)
  39. if (ja[j] == row) return true;
  40. return false;
  41. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
0:1 - not zero
0:3 - not zero
0:7 - not zero
2:5 - not zero
2:7 - not zero
0
1
0
1
1
0