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

Программа выдает не то,что нужно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа неправильно работает http://www.cyberforum.ru/cpp-beginners/thread1017912.html
#include <iostream> int sd(int n, int d = 1) { if (n==0) { return 0; } else
C++ Вывести трехзначное число, полученное в результате перестановки чисел в обратном порядке Вывести трехзначное число, полученное в результате перестановки чисел в обратном порядке. То есть 123 -> 321. Никак не могу понять в чем ошибка. Помогите пожалуйста #include "stdafx.h" #include <iostream> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread1017911.html
C++ бесконечные ряды:)
\sum_{p=0}^{\propto }(-1/4)p*1/fact(p)2 помогите написать прогу, с точностью 0,001:) спасибо:)
массивы C++ C++
В одномерном массиве , состоящем из n вещественных элементов , вычислить : 1) Максимальный элемент массива; 2) Сумму элементов массива , расположенных до последнего положительного элемента. Сжать массив , удалив из него все элементы , модуль которых находится в интервале . Освободившиеся в конце массива элементы заполнить нулями Добавлено через 1 час 1 минуту Ребят выручайте(
C++ Дан одномерный массив. Определить, если 2 пары соседних элементов с одинаковыми знаками http://www.cyberforum.ru/cpp-beginners/thread1017896.html
Определить, есть ли в одномерном массиве 2 пары чисел с одинаковыми знаками.
C++ Написать програму восхода и захода солнца Нужно написать програму С++ восхода и захода солнца и луны. Возможно уже было и проскакивало похожее? Помогите пожалуйста. подробнее

Показать сообщение отдельно
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
25.11.2013, 00:01     Программа выдает не то,что нужно
пусть массив а заполнен(n=60).
b - массив для элементов, которые встречаются в массиве а.
c - массив для вычисления частоты появления значений массива b в массиве a.(0 - один раз)
d - массив состоящий из элементов массива b,которые больше одного раза встречаются в массиве а.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int b[n],c[n],d[n];
int k=0; //счетчик кол-ва заполненых ячеек массивов b
bool povt;
for(int i=0;i<n;i++) //определение элементов в массиве а и частоты их появления
{
 povt=false;
 int j=0;
 while((j<k)&&(!povt))
  if(a[i]==b[j]) povt=true; 
  else j++;
 if(povt) c[j]++;
 else
 {
  b[k]=a[i];
  c[k]=0;
  k++;
 }
}
int m=0; //счетчик количества элементов в массиве d
for(int i=0;i<k;i++)
 if(c[i]) //если элемент встречается больше 1 раза, то записать его в массив d
 {
  d[m]=b[i];
  m++;
 }
Через массив структур было бы более изящно и нагляднее, но вряд ли тебе это нужно.

Добавлено через 11 минут
или можно так сделать - меньше текста, но и сложнее понять. Результирующий массив - с.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int b[n],c[n]; 
int k=0; //счетчик кол-ва заполненых ячеек массивов b 
int m=0; //счетчик кол-ва элементов в массиве с
bool povt; 
for(int i=0;i<n;i++) 
{
 povt=false;
 int j=0;
 while((j<k)&&(!povt))
  if(a[i]==b[j]) //если элемент массива а повторился, то идем дальше
  {
   povt=true;
   int x=0;
   while((x<m)&&(c[x]!=b[j])) x++;
   if(x==m) //если повтореный элемент массива а раньше не был записан в массив с, то записать
   {
    c[m]=b[j];
    m++;
   }
  }
 else j++;
 if(!povt) 
 {
 b[k]=a[i];
 k++;
 }
}
 
Текущее время: 12:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru