Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <locale.h>
- #include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- void MakeMatr(int *arr, int n)
- {
- int data;
- for (int r=0; r<n; r++)
- {
- for (int c=0; c<n; c++)
- {
- data= r*10+c;
- arr[r*n+c]= data;
- //*(arr+c+r*n)= data; // адресация указателем
- }
- }
- // По умолчанию 1-й элемент = 0 по условию формирования данных Номер строки*10+номер колонки
- //Вводим нулевые элементы для задания
- //arr[n*n/3]= 0; arr[n*n/8]= 0; arr[n*n/12]= 0;
- // Без нулей
- //arr[0]= n*10+n;
- }
- void OutMatr(int *arr, int n)
- {
- for (int r=0; r<n; r++)
- {
- for (int c=0; c<n; c++)
- {
- //printf("%d\t", *(arr+c+r*n)); // адресация указателем
- printf("%d\t", arr[r*n+c]);
- }
- printf("\n");
- }
- }
- int ZeroMatr(int *arr, int n)
- {
- int z= 0;
- for (int a=0; a<(n*n); a++) if ( !arr[a] ) z++;
- return z;
- }
- void MaxEl(int *arr, int n, int *ma, int *mz)
- {
- int na=0;
- while (na<n)
- {
- if ( *ma < arr[na*n+na] ) *ma= arr[na*n+na];
- na++;
- }
- na--;
- for (int r=0; r<n; r++)
- {
- if ( *mz < arr[r*n+na] ) *mz= arr[r*n+na];
- na--;
- }
- }
- int main()
- {
- system("chcp 1251 > nul");
- SetConsoleTitle("ОтветыМейлРу"); // Русские буквы
- int N; printf("Введите размер матрицы N = "); scanf("%d", &N);
- int *MatrN= (int *) malloc(N*N*sizeof(int));
- if (MatrN==NULL) {printf ("Ошибка выделения памяти\n"); exit(1); }
- MakeMatr(MatrN, N); OutMatr(MatrN, N);
- int z= ZeroMatr(MatrN, N); printf ("Количество нулевых элементов= %d\n", z);
- int MaxA=-1, MaxZ= -1;
- MaxEl(MatrN, N, &MaxA, &MaxZ);
- printf ("Максимальное значение главной диагонали = %d\n", MaxA);
- printf ("Максимальное значение побочной диагонали = %d\n", MaxZ);
- //system("pause");
- free(MatrN);
- printf("\n"); system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement