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

Сравнить произведения элементов массивов

30.10.2016, 22:09. Просмотров 446. Ответов 0
Метки с (Все метки)

Подскажите, что не так в моем коде. Кампилятор ругается на void main, типа нужен return, но он же там есть...
Условие: ввести из файла 3 массива. Определить в каком массиве больше произведение элементов, попадающих в заданный диапазон. Если в двух или трёх массивах произведения совпадают, вывести соответствующее сообщение.
Вот мой не рабочий код:

#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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2016, 22:09
Ответы с готовыми решениями:

Сформировать массив из элементов исходных массивов, меньших произведения последних элементов заданных массивов.
Программа должна: 1)генерировать случайным образом элементы исходных массивов; 2)выполнять...

Создать новый массив, элементами которого являются произведения соответствующих элементов массивов
Даны целочисленные массивы A(n), B(n). Создать новый массив C(n), элементами которого являются...

Сравнить соответствующие элементы двух массивов и вывести на экран номера совпавших элементов
Заданы два массива целых чисел одинаковой размерности.Сравнить их соответствующие элементы и...

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

Матрица ( проверять знак произведения двух элементов каждого столбца и печать значения произведения...)
Дана матрица A с 2 строками и 10 столбцами. В цикле, начиная с 1-го столбца матрицы, проверять знак...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2016, 22:09

В массиве найти произведение двух заданных последовательностей чисел; полученные произведения сравнить
Доброго времени суток, нужен полный код си++ для задания: Одномерный массив X(8) задать в...

Вычислить значение выражения включающее произведения массивов
Посчитать значение функции и записать её в файл. Если x&gt;y то z=x*Amax иначе z=y*Bmax; ...

Сравнить соответствующие элементы каждой пары массивов
Заданы пары массивов одинаковой размерности: два массива целых чисел и два массива вещественных...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.