Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2017, 11:21   #1
SViktoriya
Новичок
Джуниор
 
Регистрация: 07.07.2017
Сообщений: 2
По умолчанию Помогите с задачкой по С (двухмерные массивы)

Добрый день мальчишки)
Кто поможет с решением задачки
Задан двухмерный массив целых чисел A(N, M). Найти произведение элементов, расположенных на главной диагонали.
Заранее спасибо!
SViktoriya вне форума Ответить с цитированием
Старый 07.07.2017, 11:27   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы не перепутали "помогите" и "сделайте за меня"?

Покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.07.2017, 11:43   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от SViktoriya Посмотреть сообщение
Задан двухмерный массив целых чисел A(N, M). Найти произведение элементов, расположенных на главной диагонали.
Код:
 p=1.0;
 int min_size=N<M?N:M;
 for(int i=0;i<min_size; i++)
    p*=A[i][i];
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.07.2017, 11:53   #4
SViktoriya
Новичок
Джуниор
 
Регистрация: 07.07.2017
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Вы не перепутали "помогите" и "сделайте за меня"?

Покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Код:
#include <stdio.h> 
#include <conio.h> 
#include <math.h> 
#include <Windows.h> 
#include <process.h> 
#include <locale.h> 

void FillMas(double**, int, int);
int Zadanie(double**, int);
void PrintResults(double**, int, int, double);

void main() {
	setlocale(LC_ALL, "Russian");

	int n, m;
	double sum, sum1;
	double**mas;

	printf("Введите количество строк = количеству стобцов:");
	scanf_s("%d", &n);
	m = n;

	if ((n <= 0) || (m <= 0)) {
		printf("Количество строк и столбцов массива должны быть положительными числами\n");
		_getch();
	}

	else {
		if (!(mas = new double*[n])) {
			printf("Недостаточно памяти!\n");
			exit(0);
		}
		for (int i = 0; i<n; i++) {
			if (!(*(mas + i) = new double[m])) {
				printf("Недостаточно памяти!\n");
				mas = NULL;
				exit(0);
			}
		}

		FillMas(mas, n, m);

		sum1 = Zadanie(mas, n);

		PrintResults(mas, n, m, sum1);

		for (int i = 0; i < n; i++) {
			delete[](*(mas * i));
		}
		delete[] mas;
		printf("\nМассив удален!\n");

		system("pause");
	}
}

void FillMas(double**mas, int n, int m) {
	for (int i = 0; i < n; i++) {
		printf("Введите элементы [%d] строки:\n", i);
		for (int j = 0; j < m; j++) {
			printf("[%d][%d]=", i, j);
			scanf_s("%lf", *(mas * i) * j);
		} printf("\n");
	}
}

int Zadanie(double**mas, int n)
{
	double sum = 0;
	for (int i = 0; i < n; i++) {
		sum += *(*(mas * i) * i);
	}
	if (sum == 0) {
		printf("Произведение элементов главной диагонали равна нулю.\n Ошибка: на нуль делить нельзя!");
	}
	return sum;
}


void PrintResults(double **mas, int n, int m, double sum)
{
	printf("Произведение элементов главной диагонали = %1.lf\n", sum);
	printf("\n------Первоначальный массив------\n");
	for (int i = 0; i <n; i++) {
		for (int j = 0; j <m; j++) {
			printf("[%d][%d]=%1.2lf\t", i, j, (*(*(mas * i) * j)));
		} printf("\n");
	}
	printf("\n-----Преобразованный массив------\n");
	for (int i = 0; i <n; i++) {
		for (int j = 0; j <m; j++) {
			printf("[%d][%d]=%1.2lf\t", i, j, (*(*(mas * i) * j)));
		} printf("\n");
	}
}
SViktoriya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачкой на С++ morindos Помощь студентам 3 15.10.2009 18:14
Помогите с задачкой (Си) Defa4ka Помощь студентам 27 14.10.2009 10:49
Помогите с задачкой((( Паскалька^^ Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2008 19:28
Помогите с задачкой по СИ pliz Общие вопросы C/C++ 7 10.12.2007 20:08
Помогите с задачкой Saniok Помощь студентам 4 29.09.2007 20:34