Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.10.2016
Сообщений: 3
1

Нахождение произведения элементов массива

30.10.2016, 21:55. Показов 1062. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Возможно, я обращаюсь с не очень умным вопросом, но я никак не могу понять, какая у меня ошибка в программе, в которой необходимо обработать три массива разного размера.
Необходимо написать функцию, которая выполняет требуемые действия, применить её ко всем трём массивам и сравнить полученные результаты. Ввод осуществляется из файлов с использованием аргументов функции main. Вывод – на экран или в файл с обязательным выводом исходных данных.Определить в каком массиве больше произведение элементов, попадающих в заданный диапазон. Если в двух или трёх массивах произведения совпадают, вывести соответствующее сообщение.
Помогите понять где ошибка.
Вот мой нерабочий код:

#include "stdafx.h"
#include <iostream>
#include <fstream>


#define _CRT_SECURE_NO_WARNINGS

using namespace std;

char buff[100]; // Буфер промежуточного хранения считываемого из файла текста.
ifstream fin("mas1.txt"); // Открыли файл для чтения.

const int nmax = 4;


int ArrayInput(int *n, double x[], char *fname); // Функция ввода массива из файла.
double Pr(double x[], int n); // Функция произведения элементов массива.

void main(int argc, char *argv[]) {
double a[nmax], b[nmax], c[nmax];
double pa, pb, pc, max;
int na, nb, nc;


setlocale(LC_ALL, "rus"); // Изменяем кодировку.
if (argc < 4) {
printf("Недостаточно параметров!\n");
return;
}
if (!ArrayInput(&na, a, argv[1]))
return;
if (!ArrayInput(&nb, b, argv[2]))
return;
if (!ArrayInput(&nc, c, argv[3]))
return;

pa = Pr(a, na);
pb = Pr(b, nb);
pc = Pr(c, nc);

max = pa;
if (pb > max) max = pb;
if (pc > max) max = pc;

if (pa == max)
printf("Массив А имеет максимальное произведение элементов: %9.3lf\n", max);
if (pb == max)
printf("Массив В имеет максимальное произведение элементов: %9.3lf\n", max);
if (pc == max)
printf("Массив С имеет максимальное произведение элементов: %9.3lf\n", max);
}

double Pr(double x[], int n) {
double p = 1;

for (int i = 0; i < n; i++)
p *= x[i];

return p;
}

int ArrayInput(int *n, double x[], char *fname) {
FILE *file;

if ((file = fopen(fname, "r")) == NULL) {
printf("Невозможно открыть файл '%s'\n", fname);
return 0;
}
if (fscanf(file, "%d", n) < 1) {
printf("Ошибка чтения '%s'\n", fname);
fclose(file);
return 0;
}
if (*n < 0 || *n > nmax) {
printf("Количество элементов массива должно быть от 1 до %d! (файл '%s')\n", nmax, fname);
return 0;
}
for (int i = 0; i < *n; i++)
if (fscanf(file, "%lf", &x[i]) < 1) {
printf("Ошибка чтения '%s'\n", fname);
fclose(file);
return 0;
}
fclose(file);
return 1;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2016, 21:55
Ответы с готовыми решениями:

Нахождение произведения положительных элементов побочной диагонали двумерного массива целых чисел
Привет!) Сижу на экзе, нужна помощь.... Задание: Написать программу на языке Си++ нахождения...

Нахождение произведения элементов матрицы через класс
Здравствуйте! Передо мной появилась задача - разработать программу нахождения произведения...

Вычислить сумму S = P1 + P2 произведения P1 четных элементов массива xi и произведения P2 четных элементов массива yi , i = 1, 2, 3
Пожалуйста решите. Вычислить сумму S = P1 + P2 произведения P1 четных элементов массива xi и...

Вычислить произведения элементов массива
Даны действительные числа a1, ..., an. Нужно вычислить: a1, - a1а2, а1a2 a3,…,(-1)n+1a1a2…an

0
30.10.2016, 21:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2016, 21:55
Помогаю со студенческими работами здесь

Рекурсия: вычисление произведения элементов массива
Доброго времени суток!!! В С++ полный нуб.... маюсь не первый день с такой задачкой: Напишите...

Рекурсивная функция произведения элементов массива
Здесь функция произведения &quot;proizv&quot; считает произведение всех элементов массива, как сделать её...

Ошибка в знаке произведения элементов массива
Приветствую. Написал программу,которая должна выводить на экран значения чисел в каждой ячейке +...

Написать функцию вычисления произведения элементов массива
Написать функцию вычисления произведения элементов массива. В качестве входных параметров передать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru