powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / не компонуется программа
4 сообщений из 4, страница 1 из 1
не компонуется программа
    #34238585
lrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет
Не подскажите почему программу на С++ не скомпоновать?
компилируется без ошибок

// Даны вещественные массивы c[3][4], d[3][4].
// Для каждого массива определить среднее арифметическое
// положительных элементов массива и минимальный элемент.
// В программе предусмотреть функции:
// - ввода массивов с клавиатуры;
// - расчета (среднее арифметическое и минимальный элемент
// расчитываются в одной функции);
// - вывода исходных массивов и результатов поиска
// функция)

#include <iostream.h>
#define I 3
#define J 4

// прототипы функций
void inputmas(float [J], char);
void raschet(float [J], float& , float& );
void printmas(float [J], char);
void printrez(float [J], char, float, float);

void main()
{
float c[J], d[J], sredc, sredd, minc, mind;
inputmas(c,'c'); // вызовы функций
inputmas(d,'d');
raschet(c,sredc,minc); // новый вызов функции
printrez(c,'c',sredc,minc);
raschet(d, sredd, mind); // новый вызов функции
printrez(d,'d',sredd,mind);
}

// определение функции ввода массива
void inputmas(float m[J], char im)
{
int i,j;
cout << "\\nВводим массив " << im << "\\n";
for (i=0; i<I; i++)
for ( j=0; j < J; j++)
{
cout << im << " [" << i << " ][ " << j << " ] = ";
cin >> m[j];
}
}

// определение функции расчета среднего арифметического
// положительных элементов массива и поиска минимального
// элемента массива

// новый текст функции
void raschet (float x[J], float &sum, float &kol, float &min) { //меняем список
//параметров

// объявление переменных
int i,j;
sum=0.0; // для расчета суммы отрицательных эл-тов
kol = 0; // для расчета количества отрицательных эл-тов

min = x[0][0]; // первоначально в качестве минимального
// принимаем элемент x[0][0], его значение
// заносим по адресу, хранящемуся в min

for (i=0; i<I; i++)
for ( j=0; j < J; j++) {

if (x[j] < min )
min = x [j];

if (x[j] < 0)
sum += x[j]; //считаем сумму отрицательных элементов

if(x[j] >=-5 && x[j] <=5)
kol ++; //кол-во элементов в интервале -5; 5
}

}

// определение функции вывода массива на экран
void printmas(float x[J], char immas)
{
int i,j;
cout.setf( ios::showpoint | ios::fixed);
cout << "\\nМассив " << immas ;
for (i=0; i<I; i++)
{
cout << "\\n";
for(j=0; j<J; j++)
{
cout.width(8); // минимальное кол-во позиций
cout.precision(2); // 2 знака после запятой
cout << x[j];
}
}
}

// определение функции вывода
void printrez(float x[J], char immas, float sred, float min)
{
printmas(x,immas); // вызываем функции вывода массива
cout << "\\n\\nСреднее арифм. положительных элементов равно " << sred;
cout << "\\nМинимальный элемент в массиве = " << min;

}

Выдает: Linker Error: Undefined symbol raschet(float[4]near*,float near&,float near&)
...
Рейтинг: 0 / 0
не компонуется программа
    #34238628
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас прототип функции не совпадает с определением. Сравните:

void raschet(float [J], float& , float& );
void raschet (float x[J], float &sum, float &kol, float &min) { //
...
Рейтинг: 0 / 0
не компонуется программа
    #34238651
lrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понял что в начале функция raschet с тремя параметрами, а ниже она уже с 4-мя описывается - количество параметров не совпадает...
...
Рейтинг: 0 / 0
не компонуется программа
    #34238718
lrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быть так:
// Даны вещественные массивы c[3][4], d[3][4].
// Для каждого массива определить среднее арифметическое
// положительных элементов массива и минимальный элемент.
// В программе предусмотреть функции:
// - ввода массивов с клавиатуры;
// - расчета (среднее арифметическое и минимальный элемент
// расчитываются в одной функции);
// - вывода исходных массивов и результатов поиска
// функция)

#include <iostream.h>
#define I 3
#define J 4

// прототипы функций
void inputmas(float [J], char);
void raschet (float x[J], float &sum, float &kol, float &min);
void printmas(float [J], char);
void printrez(float x[J], char immas, float sum, float kol, float min);

void main()
{
float c[J], d[J], minc, mind,sumc,sumd,kolc,kold;
inputmas(c,'c'); // вызовы функций
inputmas(d,'d');
raschet(c,sumc,kolc,minc); // новый вызов функции
printrez(c,'c',sumd,kold,minc);
raschet(d,sumd,kold, mind); // новый вызов функции
printrez(d,'d',sumd,kold,mind);
}

// определение функции ввода массива
void inputmas(float m[J], char im)
{
int i,j;
cout << "\\nВводим массив " << im << "\\n";
for (i=0; i<I; i++)
for ( j=0; j < J; j++)
{
cout << im << " [" << i << " ][ " << j << " ] = ";
cin >> m[j];
}
}

// определение функции расчета среднего арифметического
// положительных элементов массива и поиска минимального
// элемента массива

// новый текст функции
void raschet (float x[J], float &sum, float &kol, float &min) { //меняем список
//параметров

// объявление переменных
int i,j;
sum=0.0; // для расчета суммы отрицательных эл-тов
kol = 0; // для расчета количества отрицательных эл-тов

min = x[0][0]; // первоначально в качестве минимального
// принимаем элемент x[0][0], его значение
// заносим по адресу, хранящемуся в min

for (i=0; i<I; i++)
for ( j=0; j < J; j++) {

if (x[j] < min )
min = x [j];

if (x[j] < 0)
sum += x[j]; //считаем сумму отрицательных элементов

if(x[j] >=-5 && x[j] <=5)
kol ++; //кол-во элементов в интервале -5; 5
}

}

// определение функции вывода массива на экран
void printmas(float x[J], char immas)
{
int i,j;
cout.setf( ios::showpoint | ios::fixed);
cout << "\\nМассив " << immas ;
for (i=0; i<I; i++)
{
cout << "\\n";
for(j=0; j<J; j++)
{
cout.width(8); // минимальное кол-во позиций
cout.precision(2); // 2 знака после запятой
cout << x[j];
}
}
}

// определение функции вывода
void printrez(float x[J], char immas, float sum, float kol, float min)
{
printmas(x,immas); // вызываем функции вывода массива
cout << "\n\nsumma положительных элементов равно " << sum;
cout << "\nkol-vo="<<kol;
cout << "\nМинимальный элемент в массиве = " << min;
}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / не компонуется программа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]