Заблокирован
1

Перекрашивание одинаковых чисел. Подскажите, где ошибка

18.10.2014, 22:26. Показов 340. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
программа должна перекрасить одинаковые числа , но почему то не работает и не могу найти ошибку

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
 
bool IsRepeatable(int * p, int i, int n)
{
        int j;
    for (int j = 0; j<n; ++j){
        if (p[i]==p[j])
        {
            return 1;
        }
    }
    return 0;
}
 
 
void main(int argc, char* argv[])
{
  int i,n;
  int * p;
  cout << "Masiva elementu daudzums N= ";
  cin >> i;
  p= new  int[i];
 
    for (n=0; n<i; n++)
    {
      cout << "Ievadiet vertibas : ";
      cin >> p[n];
    }
    cout << "Jusu ievadtie skaitli ir : ";
    for (n=0; n<i; n++)   {
    {
      if (IsRepeatable(p,i,n))
      {
        textcolor(LIGHTRED);
      }
     
      cout << p[n] << ", ";}
      textcolor(WHITE);
    }
     printf("\n");
     system("pause");
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2014, 22:26
Ответы с готовыми решениями:

Препод говорит где - то ошибка в синтаксисе. Сам код взят из "жефри Рихтер - Создание эффективных WIN32 приложений" Пожалуйста, подскажите где ошибка!
// получаем код ошибки DWORD dwError = GetDlgItemInt(hwnd, IDC_ERRORCODE, NULL, FALSE); HLOCAL...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в...

Подскажите ,где ошибка в php? В какой-то строке ошибка
Здравствуйте. На вордпресс нашёл плагин на форуме.Тема закрыта,спросить не у кого. Пишут...

подскажите, где ошибка
Нужно посчитать количество повторений каждой буквы в произвольно введенном английском тексте и...

11
2268 / 1761 / 739
Регистрация: 27.07.2012
Сообщений: 5,233
18.10.2014, 22:30 2
Потому что путаница с аргументами функции IsRepeatable: передаёшь в неё число элементов массива, а используешь в функции как индекс. Там у тебя вообще выход за пределы массива получается.
0
Модератор
Эксперт С++
13496 / 10751 / 6406
Регистрация: 18.12.2011
Сообщений: 28,687
18.10.2014, 22:32 3
И еще
Цитата Сообщение от cr0n Посмотреть сообщение
if (p[i]==p[j])
C++
1
if (p[i]==p[j] && i!=j)
0
2268 / 1761 / 739
Регистрация: 27.07.2012
Сообщений: 5,233
18.10.2014, 22:34 4
zss, у него в main i - это число элементов массива, а n - индекс, а в функции наоборот.
0
Модератор
Эксперт С++
13496 / 10751 / 6406
Регистрация: 18.12.2011
Сообщений: 28,687
18.10.2014, 22:37 5
Я потому и написал
Цитата Сообщение от zss Посмотреть сообщение
И еще
Мораль - нечего отступать от общепринятых i - индекс массива, n - его размер!

Советую поменять их местами и переписать функцию main()
0
Заблокирован
18.10.2014, 22:39  [ТС] 6
и как это выглядит если исправить ?
0
2268 / 1761 / 739
Регистрация: 27.07.2012
Сообщений: 5,233
18.10.2014, 22:44 7
Цитата Сообщение от cr0n Посмотреть сообщение
и как это выглядит если исправить ?
В функции main просто замени i на n, а n на i.
И не забудь проверку, про которую zss писал.
0
Заблокирован
18.10.2014, 22:51  [ТС] 8
Цитата Сообщение от John Prick Посмотреть сообщение
В функции main просто замени i на n, а n на i.
И не забудь проверку, про которую zss писал.
Изменил, но все осталось по прежнему
0
2268 / 1761 / 739
Регистрация: 27.07.2012
Сообщений: 5,233
18.10.2014, 22:52 9
cr0n, ну покажи ,как заменил.
0
Заблокирован
18.10.2014, 22:56  [ТС] 10
Цитата Сообщение от John Prick Посмотреть сообщение
cr0n, ну покажи ,как заменил.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
 
 
 
bool IsRepeatable(int * p, int i, int n)
{
        int j;
    for (int j = 0; j<n; ++j){
        if (p[i]==p[j] && i!=j)
        {
            return 1;
        }
    }
    return 0;
}
 
 
void main(int argc, char* argv[])
{
  int i,n;
  int * p;
  cout << "Masiva elementu daudzums N= ";
  cin >> n;
  p= new  int[n];
 
    for (i=0; i<n; i++)
    {
      cout << "Ievadiet vertibas : ";
      cin >> p[i];
    }
    cout << "Jusu ievadtie skaitli ir : ";
    for (i=0; i<n; i++)   {
    {
      if (IsRepeatable(p,n,i))
      {
        textcolor(LIGHTRED);
      }
     
      cout << p[i] << ", ";}
      textcolor(WHITE);
    }
     printf("\n");
     system("pause");
 
}
0
2268 / 1761 / 739
Регистрация: 27.07.2012
Сообщений: 5,233
18.10.2014, 22:58 11
Пардон, я не уточнил.
Здесь менять не надо было:
C++
1
IsRepeatable(p,n,i)
Т.е. эту строчку оставить, как была:
C++
1
IsRepeatable(p,i,n)
1
Заблокирован
18.10.2014, 23:24  [ТС] 12
Цитата Сообщение от John Prick Посмотреть сообщение
Пардон, я не уточнил.
Здесь менять не надо было:
C++
1
IsRepeatable(p,n,i)
Т.е. эту строчку оставить, как была:
C++
1
IsRepeatable(p,i,n)
хоть уже и многие ошибки помогли исправить все равно отказывает перекрашивать
0
18.10.2014, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2014, 23:24
Помогаю со студенческими работами здесь

Подскажите, где ошибка
Здравствуйте. Только начинаю программировать, ни как не могу понять в чем ошибка. Как я понимаю,...

Подскажите где ошибка
Мне необходимо подсчитать количество верных ответов, однако возникает проблема при выводе...

Подскажите, где ошибка?
Нужно, что б в файле были все данные, но там выглядит так: &lt;! DOCTYPE HTML PUBLIC&quot;-//W3C//DTD...

подскажите где ошибка?
Program q; var a,b:integer; begin readln (a); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru