![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 16.02.2013
Сообщений: 8
|
![]()
Написать программу, содержащую пользовательскую функцию, решающую сформулированную ниже задачу. Во всех заданиях предусмотреть захват и освобождение динамической памяти (calloc или malloc). На печать в виде таблиц вывести исходный двухмерный массив. Размеры массива N и M, элементы массива ввести с клавиатуры в функции main(). Предусмотреть реакцию программы в случае, если исходные данные не позволяют выполнить поставленную задачу.
Дан целочисленный прямоугольный массив. Определить сумму модулей элементов, расположенных на главной диагонали. НЕ МОГУ РАЗОБРАТЬСЯ ПОЧЕМУ ПОЧЕМУ ОШИБКА В НАПИСАНИИ sum+=fabs(*(*(arr+i)+j)); И ПОЧЕМУ ПРИ СУММИРОВАНИИ ЭЛЕМЕТНОВ ГЛАВНОЙ ДИГОНАЛИ ПРОПУСКАЕТ ЭЛЕМЕНТ arr [0][0]. Заранее спасибо. #include <conio.h> #include <stdio.h> #include <math.h> #include <locale.h> #include <process.h> #include <stdlib.h> void sum_d(int**, int, int); void main() { setlocale(LC_CTYPE,"russian"); system("cls"); fflush(stdin); int m, n, i,j; int **mas; printf("Введите количество строк массива.\n"); scanf_s("%d", &n); if (n<=0) {printf("Введите целое положительное число!");scanf_s("%d", &n);} printf("Введите количество столбцов массива.\n"); scanf_s("%d", &m); if (m<=0) {printf("Введите целое положительное число!");scanf_s("%d", &m);} if (!(mas=new int*[n])){ puts("Недостаточно памяти!"); _getch(); exit(0);} for(i=0;i<n;i++) if(!(*(mas+i)=new int[m])){ printf("Недостаточно памяти!\n"); mas=NULL; exit(0);} printf("\n Заполнение массива\n"); for(i=0;i<n;i++) {printf("\nВведите строку номер %d\n", i+1); for(j=0;j<m;j++) scanf_s("%d",*(mas+i)+j);} printf("Ввод окончен. Нажмите любую клавишу..."); _getch(); system("cls"); //очистка экрана и отправка массива в функция для вычисления sum_d(mas,n,m); } void sum_d(int **arr, int n1, int m1) // наша пользовательская функция { int sum, i, j, fabs; sum= 0; printf("\nВведенный массив:\n"); for(i=0;i<n1;i++) { printf("\n\n"); for(j=0;j<m1;j++) printf_s("%3d",*(*(arr+i)+j)); } printf("\n\n"); for(i=0;i<n1;i++) for(j=0;j<m1;j++) if (n1 != m1) printf("Количество строк и столбцов должно совпадать!\n"); else { if (i=j) sum+=fabs(*(*(arr+i)+j)); } printf("Сумма модулей элементов главной диагонали %d", sum); _getch(); } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дан массив типа integer размером 8х8. Определить сумму главной диагонали. Заменить min элемента массива на сумму главной диагона | TimoLLIa | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 11.03.2012 19:59 |
Определить сумму элементов матрицы, расположенных на главной диагонали c++ | inmanika | Помощь студентам | 2 | 18.01.2012 13:07 |
сумма элементов квадратной матрицы расположенных выше главной диагонали (Pascal) | Vogelfrei | Помощь студентам | 4 | 15.12.2011 20:38 |
в сглаженой матрице найти сумму модулей элементов расположенных ниже главной диагонали | Sergeo_89 | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 07.12.2010 00:02 |
Найти сумму парных элементов матрицы v[4][4].Расположенных ниже главной диагонали. | Black_Angel91 | Помощь студентам | 11 | 21.04.2009 20:51 |