Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 17:06   #1
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
Печаль Поиск в массиве

Уважаемые программисты,возникла проблема.Написал код,который предлагает ввести число,а потом ищет его в массиве,которы тоже заполняется пользователем.В общем поиск элемента в массиве.Вот код:
Проблема заключается в том,что он выводит только один элемент,а если одинаковых елементов 2 или 3? вот тут то и возникает проблема.Он выводит только первый а остальные нет.Пробовал ршить эту проблему но не получилось.помогите пожалуйста буду очень признателен.


код программы

Код:
#include <iostream>
#include <conio.h>
using namespace std;


//Function Search(){
           
int search(int array[],int n,int num)

{
    int i=0;
    
    while(i!=n)
    
    if(array[i]==num)return i;else i++;
    
    return -1;
    
}

//Main(){
         
int main()

{
  
    int i,size,p;
    int numerals[100],num;

    cout << "Enter the size of the array ";
    cin >> size;
 
 
    cout << "Enter the array : ";
    for(i=0;i<size;i++)
{

    cin >> numerals[i];
    
}

    cout << "Enter a number to search for :";
    cin >> num;
    
    p=search(numerals,size,num);

    if(p==-1)
    cout << " The number is not found \n"; 
    
    else cout << " Number Found :" << numerals[p]<< "\n";

    
    getch();
    return 0;
}
Модератор: тег CODE!

Последний раз редактировалось Sazary; 02.06.2009 в 17:15.
Paul_AG вне форума Ответить с цитированием
Старый 02.06.2009, 17:17   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Выводите найденные индексы прямо в функции.
Или еще можете заносить индексы в массив и возвращать его.

И код заключайте в теги CODE!
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 00:18   #3
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

извините...а можете показать как именно...плиззз...
Paul_AG вне форума Ответить с цитированием
Старый 03.06.2009, 00:23   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот как-то так:
Код:
void search(int array[],int n,int num)
{
    int i=0,p=-1;

    for(i=0; i<n; i++)
     if(array[i]==num)
      {
       if(p==-1) { cout << "Enter the array : "; p = 1; }
       cout<<i<<" ";
      }
  if(p==-1) cout << " The number is not found \n";

return;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 00:45   #5
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Уважаемый Sazary,что то не срабатывает((( я сделал так :


code :
Код:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;

//Function Search(){
           
void search(int array[],int n,int num)
{
    int i=0,p=-1;

    for(i=0; i<n; i++)
     if(array[i]==num)
      {
       if(p==-1) { cout << "Enter the array : "; p = 1; }
       cout<<i<<" ";
      }
  if(p==-1) cout << " The number is not found \n";

return;
}

//Main(){
         
int main()

{
    
    int i,size,p;
    string numerals[100],num;
    
   
    cout << "Enter the size of the array";
    cin >> size;

    cout << "Enter the array ";
    for(i=0;i<size;i++)
{

    cin >> numerals[i];
    
}

    cout << "\n Enter a number to search for :";
    cin >> num;
 
    search(array[],n,num);
 
    getch();
 return 0;
}

Последний раз редактировалось Sazary; 03.06.2009 в 00:51.
Paul_AG вне форума Ответить с цитированием
Старый 03.06.2009, 00:55   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Paul_AG, вы отчаянно не слышите мои слова по поводу тегов. Или игнорируете их?

На панели в окне редактирования есть значок "#". Нажмите его и в окне появятся открывающий и закрывающий теги:
[CODE][/CODE]
Между ними и размещайте код. У вас 80 сообщений - пора бы уже это знать.

По коду:
Код:
search(array[],n,num);
кто такой array[] ?
Вот так надо:
Код:
search(numerals,size,num);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 01:08   #7
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Извините пожалуйста,я не игнорирую просто не знал об этом.
А код все равно не работает( указывает на то место где вызывается функция search.

Вот код :

Код:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;

//Function Search(){
           
void search(int array[],int n,int num)
{
    int i=0,p=-1;

    for(i=0; i<n; i++)
     if(array[i]==num)
      {
       if(p==-1) { cout << "Enter the array : "; p = 1; }
       cout<<i<<" ";
      }
  if(p==-1) cout << " The number is not found \n";

return;
}

//Main(){
         
int main()

{
    
    int i,size,p;
    string numerals[100],num;
    
   
    cout << "Enter the size of the array";
    cin >> size;

    cout << "Enter the array ";
    for(i=0;i<size;i++)
{

    cin >> numerals[i];
    
}

    cout << "\n Enter a number to search for :";
    cin >> num;
 
    search(numerals[],size,num);
 
    getch();
 return 0;
}
Paul_AG вне форума Ответить с цитированием
Старый 03.06.2009, 01:11   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Paul_AG
А код все равно не работает( указывает на то место где вызывается функция search.
Посмотрите на свой же листинг из первого поста:
Код:
 p=search(numerals,size,num);
А теперь на то, что вы пишете сейчас:
Код:
search(numerals[],size,num);
А теперь на сообщение компилятора (привожу то, что пишет мне):
Цитата:
expected primary-expression before ']' token
Что бы это значило?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 01:21   #9
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Теперь все работает) Спасибо вам огромное уважаемый Sazary!Извините меня пожалуста,я очень не внимательный...и еще,что дурацкие вопросы задаю..просто очень хочется научится С++
Paul_AG вне форума Ответить с цитированием
Старый 03.06.2009, 01:29   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Paul_AG, просто будьте внимательней и не игнорируйте сообщения компилятора. В большинстве случаев он говорит все, что нужно для устранения проблемы.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск суммы в 2-ном массиве. С# WelNi Общие вопросы C/C++ 1 12.01.2009 19:04
Двоичный поиск элемента в массиве (Си под DOS) Zid@ne Общие вопросы C/C++ 7 24.12.2008 18:07
Поиск в одномерном массиве Joxter Помощь студентам 6 13.12.2008 14:19
Поиск в массиве данных. Cobra9100 Microsoft Office Excel 1 17.10.2008 09:35
Нужен совет(бинарный поиск в 2-d массиве) sergey31 Помощь студентам 2 27.04.2008 13:49