IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Помогите решить 2 задачи, С++
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Здравствуйте! Не писал на С++ уже больше полутора лет, друг попросил помочь, сам никак не разберусь...
Есть 2 задачи:
- Дан одномерный массив чисел, среди элементов которого есть одинаковые. Создать новый массив из различных элементов исходного массива.
- Дана действительная матрица размером n ? m, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.
Написал следующий код:
Задача №1
Предполагаемый алгоритм:
- Пусть дан массив a
- Сравниваем a[k] элемент со всеми остальными
- Если значения совпадают (но не совпадают индексы) элементов массива, то увеличиваем f,
если в результате работы цикла значение f равно 1, то число добавляем в другой массив.
Код

#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int n,f,d,i,j,k,a[100],b[100];
f=1;
d=1;
cin >> n;
for (i=1; i<=n; i++)
{
cout << "Введите длину массива "  << i << " :";
cin >> a[i];
}
for (i=1; i<=n; i++)
{
cout << " " << a[i] << " ";
}
for (j=1; j<=n; j++)
{
for (k=1; k<=n; k++)
  {
  if (a[k]==a[j])
  {
  if (k!=j)
  {
   f++;
   }
   }
   if (f==1)
    {
    b[d]=a[j];
    d++;
    }
  }

}
for (i=0; i<=n; i++)
{
cout << b[i];
}

}

Задание 2:
- Берем матрицу и построчно находим минимальное значение.
- Каждое минимальное значение(а также координаты в матрице) добавляем в массив b.
- Находим максимальное значение среди элементов массива b, и выводим это значение.
Код

#include <iostream.h>
#include <conio.h>
void main ()
{
int n,m;
clrscr();
cout << "Enter rows:";
cin >> n;
cout << "Enter cols:";
cin >> m;
int i,f,j,k,a[10][10],b[10][3],d,t;
f=1;
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
  {
  cout << "Enter a[" << i << "," << j << "]";
  cin >> a[n][m];
  }
}
for (d=1;d<=n; d++)
{
k=a[d][1];
for (t=1;t<=m;t++)
  {
  if (k<a[d][t]) {k=a[d][t]; b[f][1]=k; b[f][2]=d; b[f][3]=t;}
  }
}
k=b[1][1];
for (j=1; j<=m; j++)
  {
  if (b[j][1]>k) {k=b[j][1]; d=b[j][2]; t=b[j][3];}
  }
cout << "Max: " << k << " Str: " << d << " Stolb: " << t;
}


Оно компилируется, но не работает, подскажите пожалуйста как лучше реализовать эти задачи?
Заранее спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Ну, и
#2:
#include <iostream.h>
#include <conio.h>
#include <values.h>

int main () {

int i, j, n, m, res_i, res_j;
clrscr();

cout << "Enter rows:";
cin >> n;

cout << "Enter cols:";
cin >> m;

int a[10][10];
for(i = 0; i < n; i++) {
for(j = 0; j < m; j++) {
cout << "Enter a[" << i+1 << "," << j+1 << "]";
cin >> a[i][j];
}
}

int maximal = -MAXINT;
for(i = 0; i < n; ++i) {

int ix_min = 0;
for(j = 1; j < m; ++j)
if(a[i][j] < a[i][ix_min]) ix_min = j;

if(a[i][ix_min] > maximal) {
maximal = a[i][ix_min];
res_i = i; res_j = ix_min;
}
}

cout << "max of mins = " << a[res_i][res_j]
<< ": " << res_i << ", " << res_j << endl;

return 0;
}
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 3:43
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name