Условие задачи: Из массива Х целых чисел перенести в массив Y элементы с Хn по Хm, где Хn > Xn-1 и Xm > A.
Я учусь заочно, поэтому всё изучаю самостоятельно, и постоянно возникают проблемы. Я начал составлять программу в Borland C++Builder 6 и ничего не получается, и путаница с библиотеками.
#include <condefs.h>
#include <iostream.h>
#unclude <conio.h>
int main ()
{
int k;
int Massive_X [11] = { -25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25};
cout << "Programma po perenosy chisel.";
А дальше не получается.
Заранее благодарю.
Ну а какая именно проблема возникла? Опишите поподробней.
Из библиотек необходима только iostream или iostream.h. Объект cout определен в пространстве имен std, поэтому необходимо писать std::cout. Однако если подключить iostream.h, то cout будет определен глобально и писать std:: не потребуется.
Ниже пример. Из массива Massive_X переносятся элементы с позиции n, до тех пор пока не будет достигнут конец массива, либо значение элемента массива станет больше либо равно A. Это более-менее похоже на задание.
ввёл код и при компиляции выдало ошибку в подчёркнутой строке:
for (int i=0; i<11; i++)
{
std::cout << Massive_Y [i] << ' ';
}
std::cout << std::endl;
return 0;
}
и внизу написано:
E2129 Character constant too long (or emply)
Тогда вместо ' ', нужно написать " ".
Спасибо, программа заработала, только при выводе ответа появились ещё какие-то числа:
Programma po perenosy chisel.
-15-10-505104202423420765212449843230
И пишу свои вопросы второй задачи. Условие: Задана матрица А(7,7) целых чисел. Найти столбец с наибольшей суммой элементов. Поменять местами наибольший элемент каждой строки с соответствующим элементом данного столбца. Организовать поиск столбца и наибольшего элемента в строке с помощью подпрограмм.
Я тут не пойму, как задать матрицу, притом с семью столбцами и 7 строчками? Если можете, тоже приведите пример этой задачи.
Остальные числа появились из-за того, что когда создается массив, он не заполняется какими-либо значениями, а под него просто выделяется память. Остальные значения - это те, которые были в оперативной памяти ранее. Можно либо заполнять массив нулями в начале программы, либо просто не выводить весь массив целиком, а вывести только начало массива.
Матрица - это двухмерный массив, задается примерно так же:
int ar [7][7];
Вот мы задали двухмерную матрицу ar размерности 7x7.
ar[0][0]=5;
Присвоили элементу (0;0) значение 5.
Если Вам придется дальше решать задачи по программированию, то все это лучше понять, это основы.
Изучать программирование мне придется только этот семестр. к/р состоит из 2-х вопросов теории, и 3-ч задач. Первые две задачи (которые я привел выше) - обязательно. Третья - на высокую оценку. Мне хотябы 2 эти задачи сделать. Теорию найти легко.
Насчет 1-ой задачи: заново написал программу - и теперь уже непонятно что выдает!
Насчет 2-ой задачи: начал писать код
//---------------------------------------------------------------------------
#include <iostream>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
int ar [7][7]
std::cout << "Matrica." << std::endl;
for (int
return 0;
}
//---------------------------------------------------------------------------
и сразу возникли трудности. я не пойму как найти наибольший элемент каждой строки, если её нет. Значит надо писать всю матрицу? Поменять местами, я думаю, не доставит большой сложности. А вот как организовать поиск столбца и наибольшего элемента в строке с помошью подпрограмм непойму. И что это за подпрограммы?
Если нетрудно, ответьте.
Да, матрицу необходимо либо задать в программе (или жестко указать значения как в первой задаче, или воспользоваться генератором случайных чисел), либо вводить с клавиатуры.
Чтобы найти максимальный элемент в строке, нужно сравнить все элементы строки между собой.
Подпрограммы это тоже, что и int main(){}, только main() главная. Например int maxel(const int n){находим макс. элемент; return max;}
Благодаря нечеловеческих усилий и помощи друзей удалось написать что-то. Но как всегда компилятор выдаёт ошибки. Посмотрите и скажите где ошибки:
//---------------------------------------------------------------------------
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
//---------------------------------------------------------------------------
int calcsum (int ar[7][7], int i);
int calcmax (int ar[7][7], int i);
int calcsum (int ar[7][7], int i)
{
int sum = 0;
int j;
for (j=0;j<7;j++)
sum += ar[j][i];
}
int calcmax (int ar [7][7], int i)
{
int max = 0;
int j, jmax;
for (j=0; j<7; j++)
{
if (max<ar[i][j])
{
max = ar[i][j];
jmax = j;
}
}
return (jmax);
}
int main (int argc,char* argv [])
{
int j;
int i;
int max = 0;
int imax;
int ar [7][7]=
{
{1,2,3,4,5,6,7},
{2,6,3,6,4,6,2},
{3,5,5,4,6,1,6},
{7,4,5,4,5,4,5},
{1,1,3,4,1,3,3},
{2,3,4,3,4,3,5},
{1,2,3,2,3,2,3}
};
for (i=0;i<7;i++)
{
j = calcsum(ar,i);
if (max<j)
{
max=j;
imax=i;
}
}
printf ("Maximum sum = %d for column = %d\n",max,imax+1);
for (i=0;i<7;i++)
{
j = calcmax(ar,i);
max = ar[i][j];
ar[i][j] = ar[i][imax];
ar[i][max]=max;
}
getch();
return 0;
}
В секции include написать только
Сделал исправления - и выдаёт ошибку:
Unit1.cpp(18); E2378 Return statement missing;
Ну когда уже эти ошибки закончатся.
Функция calcsum написана таким образом?
с новым годом. думали трудно заново зарегистрироваться.
Мне на старый ник поставили бан, короче запретили добавлять сообщения на форум
Бан не ставят просто так.
Все дальнейшие сообщения не по теме топика лучше перенести в личные сообщения.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)