2013-02-23 6 views
-1

первых, это для моего класса C++ в средней школе, и вот что учитель сделал, когда скомпилирована и нет никакого результата, ничего предъявляетсяНайти номер в векторе с последовательными номерами

#include<iostream.h> 
int main() 
{ 
    int V[50],n,x,f,li,ls,m,i; 

    cout<<"number of elements="; 
    cin>>n; 
    cout<<"x="; 
    cin>>x; 

    for(i=1;i<=n;i++) 
    { 
    cout<<"V["<<i<<"]="; 
    cin>>V[i]; 
    } 

    f=0; 
    li=1; 
    ls=n; 

    while(li<=ls)&&(f==0); 
    { 
    m=(li+ls)/2; 
    if(V[m]==x) 
     f=1; 
    else 
     if(V[m]<x) 
     li=m+1; 
     else 
     ls=m-1; 
    } 
    if(f==1) 
    cout<<"the number is on position "<<m; 
    else 
    cout<<"the number is not in the vector"; 

    return 0; 
} 

Я сожалею о моем плохом английском

Edit: я forogot, пример он дал нам был:

V={ 5,5,5,6,7,7,8,8,8,9,10,10,25,25 } 

и x=10.

+0

вы должны опубликовать код, который фактически компилируется. –

+0

Что вы думаете? –

+0

одна вещь, которую я исправил до того, как я смог запустить программу: while (li <= ls && f == 0) Вопрос в том, что случилось с этим кодом, как заставить его работать и показать позицию число находится в этом векторе, или если он находится в этом векторе – cUser26

ответ

0
  1. импорт Заголовок должен быть #include <iostream>
  2. Вам нужно using namespace std после заголовка, или использовать std::cout и std::cin
  3. while выражение должно быть while((li<=ls)&&(f==0)) - это должно быть одно выражение без запятой после него. Имея while(expr); создает петлю, которая ничего не делает - ; подсчитывает как пустое заявление
+0

спасибо; была проблема и в то время как expresion, кажется, сейчас работает нормально. – cUser26

+0

Добро пожаловать! –

Смежные вопросы