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


Гость






#1:
#include <iostream.h>
#include <conio.h>

int main() {

clrscr();

int a[100], b[100], i, j, n;

cin >> n;
for (i=0; i < n; i++) {
cout << "element " << i << " :";
cin >> a[i];
}

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

int d = 0;
for(i = 0; i < n; ++i) {

int exists = 0;
for(j = 0; j < d; ++j)
if(a[i] == b[j]) { exists = 1; break; }

if(!exists) b[d++] = a[i];

}

cout << endl;
for (i=0; i < d; i++) {
cout << b[i] << " ";
}
return 0;

}

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

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


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

 





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