Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- int InputN() {
- int n = -1;
- while ((n < 2) | (n > 15)) {
- printf("Введите размер[2..15] матрицы n*n: ");
- scanf("%d", &n);
- if ((n < 2) || (n > 15)) {
- printf("Ошибка!\n");
- }
- }
- return n;
- }
- int InputElement(int i, int j) {
- int n = -100;
- while ((n < -99) || (n > 99)) {
- printf("[%d][%d] = ", i, j);
- scanf("%d", &n);
- }
- return n;
- }
- int *InputMatrix(int n) {
- int *arr = NULL;
- arr = (int *) malloc(sizeof(int) * n * n);
- for (int i = 0; i < n; i++) {
- printf("\n");
- for (int j = 0; j < n; j++) {
- arr[i * n + j] = InputElement(i, j);
- }
- }
- return arr;
- }
- void PrintMatrix(int *arr, int n) {
- for (int i = 0; i < n; i++) {
- printf("\n");
- for (int j = 0; j < n; j++) {
- printf("%3d", *(arr + i * n + j));
- }
- }
- }
- void PrintZeros(int *arr, int n) {
- printf("\nИдексы нулевых элементов: ");
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if (*(arr + i * n + j) == 0) {
- printf("[%d][%d] ", i, j);
- }
- }
- }
- }
- void CheckMatrix(int *arr, int n) {
- int count = 0;
- int indexI, indexJ;
- for (int i = 0; ((i < n) && (count < 1)); i++) {
- for (int j = 0; ((i < n) && (count < 1)); j++) {
- if (*(arr + i * n + j) != 0) {
- count++;
- indexI = i;
- indexJ = j;
- }
- }
- }
- if (count > 0) {
- printf("\nВ матрице есть ненулевые элементы.");
- printf(" Наример: [%d][%d] ", indexI, indexJ);
- } else
- printf("В матрице нет ненулевых элементов.");
- PrintZeros(arr, n);
- }
- int main() {
- int n;
- int *arr;
- n = InputN();
- arr = InputMatrix(n);
- printf("\nИсходная матрица: ");
- PrintMatrix(arr, n);
- printf("\n");
- CheckMatrix(arr, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement