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

Ошибка в работе программы - C++

Восстановить пароль Регистрация
 
egorikem
 Аватар для egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
20.11.2010, 12:31     Ошибка в работе программы #1
Сегодня зачёт! Надо сдавать прогу, но она не работает!
Она работает так: если у нас массив 1 2 3 3, то она напишет что число 3 повторяется 2 раза!
Но если массив: 1 2 2 3, то она опять пишет, что число 3 повторяется 2 раза! чТО ЗА БРЕД!
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
48
49
50
51
52
53
54
#include "stdafx.h"
#include <iostream>
#include <ctime>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
        setlocale(LC_ALL,"Russian");
        srand((unsigned)time(NULL));
        int *arr,maxcount=0,max=0;
        int size,count=0;
        cout<<"Введите длину массива: ";
        cin>>size;
        arr = new int[size];
          for(int i=0; i<size; i++)
           {
               cout<<"Введите елемент "<<i<<" :";
                   cin>>arr[i];
                   cout<<endl;
            }
          cout<<"Массив: ";
             for(int i=0; i<size; i++)
                {
                   cout<<arr[i]<<"  ";
               }
         
         for(int i=0; i<size; i++)
           {
         for(int j=0; j<size; j++)
                  {
            if (arr[i]==arr[j+1])
            {
                 count++;
                 maxcount=2;
                 max=arr[i];
                 
            }
            else 
            {
                count++;
                maxcount=1;
                max=arr[i]=arr[j];
 
           }
            }
         }
  cout<<"\n"<<"Элемент "<<max<<" Повторяется "<<maxcount<<" раза ";
  system("pause");
  delete [] arr;
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2010, 12:31     Ошибка в работе программы
Посмотрите здесь:

Пауза при работе программы. C++
C++ сбой в работе программы
Ошибка при работе программы C++
ошибка в работе программы C++
C++ Ошибка в работе кода программы, как исправить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8505 / 2172 / 61
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
20.11.2010, 12:33     Ошибка в работе программы #2
egorikem, напиши задание
egorikem
 Аватар для egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
20.11.2010, 12:42  [ТС]     Ошибка в работе программы #3
Задача в том, что отсортировать массив любым способом и определить наиболее повторяющийся элемент и написать кол. повторений!
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8505 / 2172 / 61
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
20.11.2010, 12:53     Ошибка в работе программы #4
egorikem, сделайте проще - два цикла для сортировки, а потом уже считайте кол-во вхождений - проще и надежнее... ваш код вообще какой-то странный...
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
20.11.2010, 12:59     Ошибка в работе программы #5
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
48
49
//#include "stdafx.h"
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
        setlocale(LC_ALL,"Russian");
        int *arr,maxcount=0,max=0;
        int size,count=0;
        cout<<"Введите длину массива: ";
        cin>>size;
        arr = new int[size];
          for(int i=0; i<size; i++)
           {
                           cout<<"Введите елемент "<<i<<" :";
                   cin>>arr[i];
                   cout<<endl;
            }
          cout<<"Массив: ";
             for(int i=0; i<size; i++)
                {
                   cout<<arr[i]<<"  ";
               }
         maxcount=arr[0];
         maxcount=1;
         for(int i=0; i<size; i++)
           {
               count=0;
               for(int j=0; j<size; j++)
                 {
                     if(arr[i]==arr[j])
                     {
                         count++;
                     }
                 } 
              if(count>maxcount)
              {
                  max=arr[i];
                  maxcount=count;
              }
                 }
  cout<<"\n"<<"Элемент "<<max<<" Повторяется "<<maxcount<<" раза ";
  system("pause");
  delete [] arr;
  return 0;
}
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8505 / 2172 / 61
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
20.11.2010, 13:02     Ошибка в работе программы #6
MILAN, массив вроде бы надо отсортировать и посчитать кол-во наиболее встречаемого элемента, а не посчитать кол-во вхождений максимального элемента
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
20.11.2010, 13:14     Ошибка в работе программы #7
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
массив вроде бы надо отсортировать
Что то я невижу чтобы в коде ТС были намеки на сортировку

посчитать кол-во наиболее встречаемого элемента, а не посчитать кол-во вхождений максимального элемента
Написаный мною код ето и делает, имена перемених просто не стал менять
egorikem
 Аватар для egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
20.11.2010, 13:19  [ТС]     Ошибка в работе программы #8
Цитата Сообщение от MILAN Посмотреть сообщение
Что то я невижу чтобы в коде ТС были намеки на сортировку



Написаный мною код ето и делает, имена перемених просто не стал менять
МУЖИК СПАСИБО! ВСЁ РАБОТАЕТ! Но вот если я добавляю сортировку то она глючит!
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
20.11.2010, 13:23     Ошибка в работе программы #9
Цитата Сообщение от egorikem Посмотреть сообщение
МУЖИК СПАСИБО! ВСЁ РАБОТАЕТ! Но вот если я добавляю сортировку то она глючит!
куда именно добавляете?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool flag = true;                             // была ли замена
while (flag)
{                     
    flag = false;
    for (int i = 0; i < size - 1; i++)
    {
        if (arr[i] > arr[i + 1])
        {
            swap(arr[i],arr[i + 1]);   
            flag = true;                 // замена была
        }
    }       
}
cout << endl; 
for(int i = 0; i < size; i++){
cout << arr[i] << " ";
}
cout << endl;
egorikem
 Аватар для egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
20.11.2010, 13:24  [ТС]     Ошибка в работе программы #10
Цитата Сообщение от panicwassano Посмотреть сообщение
куда именно добавляете?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char flag = true;                             // была ли замена
    while (flag)
    {                     
        flag = false;
        for (int i = 0; i < size - 1; i++)
        {
            if (arr[i] > arr[i + 1])
            {
                swap(arr[i],arr[i + 1]);   
                flag = true;                 // замена была
            }
        }       
    }
 
    cout << endl; 
    for(int i = 0; i < size; i++){
        cout << arr[i] << " ";
    }
    cout << endl;
C++
1
char flag=true;
Это как? Там нужен boll!
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
20.11.2010, 13:26     Ошибка в работе программы #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
        setlocale(LC_ALL,"Russian");
        int *arr,maxcount=0,max=0,temp=0;
        int size,count=0;
        cout<<"Введите длину массива: ";
        cin>>size;
        arr = new int[size];
          for(int i=0; i<size; i++)
           {
                           cout<<"Введите елемент "<<i<<" :";
                   cin>>arr[i];
                   cout<<endl;
            }
          cout<<"Массив: ";
             for(int i=0; i<size; i++)
                {
                   cout<<arr[i]<<"  ";
               }
        
         maxcount=arr[0];
         maxcount=1;
         for(int i=0; i<size; i++)
           {
               count=0;
                           for(int j=0; j<size; j++)
                 {
                                         if(arr[i]==arr[j])
                                         {
                                                 count++;
                                         }
                 } 
                          if(count>maxcount)
                          {
                                  max=arr[i];
                                  maxcount=count;
                          }
                 }
  cout<<"\n"<<"Элемент "<<max<<" Повторяется "<<maxcount<<" раза ";
  for(int i=0; i<size; i++)
  {
      for(int j=i; j<size; j++)
      {
         if(arr[i]>arr[j])
         {
             temp=arr[i];
             arr[i]=arr[j];
             arr[j]=temp;
         }
      }
  }
  cout<<endl<<"Отсортированый массив: ";
  for(int i=0; i<size; i++)
  {
      cout<<arr[i]<<" ";
  }
  system("pause");
  delete [] arr;
  return 0;
}
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
20.11.2010, 13:26     Ошибка в работе программы #12
опечатка
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2010, 13:31     Ошибка в работе программы
Еще ссылки по теме:

Неясности в работе программы C++
Ошибка при работе программы C++
Структуры. Ошибки в работе программы C++

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

Или воспользуйтесь поиском по форуму:
egorikem
 Аватар для egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
20.11.2010, 13:31  [ТС]     Ошибка в работе программы #13
Цитата Сообщение от MILAN Посмотреть сообщение
Сортировка по возростанию

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
        setlocale(LC_ALL,"Russian");
        int *arr,maxcount=0,max=0,temp=0;
        int size,count=0;
        cout<<"Введите длину массива: ";
        cin>>size;
        arr = new int[size];
          for(int i=0; i<size; i++)
           {
                           cout<<"Введите елемент "<<i<<" :";
                   cin>>arr[i];
                   cout<<endl;
            }
          cout<<"Массив: ";
             for(int i=0; i<size; i++)
                {
                   cout<<arr[i]<<"  ";
               }
        
         maxcount=arr[0];
         maxcount=1;
         for(int i=0; i<size; i++)
           {
               count=0;
                           for(int j=0; j<size; j++)
                 {
                                         if(arr[i]==arr[j])
                                         {
                                                 count++;
                                         }
                 } 
                          if(count>maxcount)
                          {
                                  max=arr[i];
                                  maxcount=count;
                          }
                 }
  cout<<"\n"<<"Элемент "<<max<<" Повторяется "<<maxcount<<" раза ";
  for(int i=0; i<size; i++)
  {
      for(int j=i; j<size; j++)
      {
         if(arr[i]>arr[j])
         {
             temp=arr[i];
             arr[i]=arr[j];
             arr[j]=temp;
         }
      }
  }
  cout<<endl<<"Отсортированый массив: ";
  for(int i=0; i<size; i++)
  {
      cout<<arr[i]<<" ";
  }
  system("pause");
  delete [] arr;
  return 0;
}
Мужик как тебя благодарить?!
Yandex
Объявления
20.11.2010, 13:31     Ошибка в работе программы
Ответ Создать тему
Опции темы

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