Форум программистов, компьютерный форум CyberForum.ru

Имеются ли в массиве пары взаимно обратных соседних чисел? - C++

Восстановить пароль Регистрация
 
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
27.10.2013, 01:50     Имеются ли в массиве пары взаимно обратных соседних чисел? #1
Дан одномерный массив x[1], x[2],..., x[n]. Определить, имеется ли в нем пары взаимно обратных соседних чисел. Определить число таких соседств.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2013, 01:50     Имеются ли в массиве пары взаимно обратных соседних чисел?
Посмотрите здесь:

перегруженые функции для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел C++
C++ Написать шаблоны функций для для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел
В массиве целых чисел найти и распечатать все пары одинаковых чисел C++
C++ Проверить имеется ли в массиве эл-мы, содержащие хотя бы одну пару взаимно обратных чисел
C++ Нужно найти в массиве и распечатать пары одинаковых чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
27.10.2013, 01:53     Имеются ли в массиве пары взаимно обратных соседних чисел? #2
перебираем элементы массива с индексами от 0 до N-2. Узнаем произведение на след. элемент и смотрим, если равно единице - увеличиваем счетчик. В конце выводим результат.
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
05.11.2013, 23:30  [ТС]     Имеются ли в массиве пары взаимно обратных соседних чисел? #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <iostream>
void main()
{
    setlocale(LC_ALL, "Russian");
  int n,i,flag;
  printf("Введите число элементов массива: ");
  scanf("%d",&n);
  float *a=new float[n]; // Описание динамического массва
// Ввод массива
  for (i=0;i<n;i++)
    { printf("Введите число a[%d]=",i);
      scanf("%f", &a[i]);      // или  scanf("%f",&a[i]);
    }
  for (i=0,flag=0;i<n;i++)
      { if (a[i]*a[i+1]==1) flag++;
      }
if (flag==0) printf ("\nТаких соседств нет!\n");
else ("\nЧисло соседств: %d \n", flag);
 
 delete[] a;             // Освобождение памяти выделенной под массив
}
Не получается программа, где моя ошибка?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
05.11.2013, 23:36     Имеются ли в массиве пары взаимно обратных соседних чисел? #4
Vonka, не ставь на строгое равенство единице, т.к. дробные числа на равно не надо сравнивать. Ставь abs(x-1)<0.00000001
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
05.11.2013, 23:52  [ТС]     Имеются ли в массиве пары взаимно обратных соседних чисел? #5
Цитата Сообщение от Dani Посмотреть сообщение
Vonka, не ставь на строгое равенство единице, т.к. дробные числа на равно не надо сравнивать. Ставь abs(x-1)<0.00000001
Не совсем понимаю что имеется под этим выражением (abs(x-1)<0.00000001), if (a[i]*a[i+1]==1) - я так понимаю из-за этой строки у меня ошибка? Странно в теории все должно работать.
Yandex
Объявления
05.11.2013, 23:52     Имеются ли в массиве пары взаимно обратных соседних чисел?
Ответ Создать тему
Опции темы

Текущее время: 22:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru