Member 13420756 Ответов: 3

Застрял на этом пожалуйста помогите


Определите функцию, которая принимает M и n целых чисел в качестве входных данных и выводит нечетные числа между m и n

vector < int > oddNumbers(int m,int n)
{


}


Что я уже пробовал:

vector <int> oddNumbers(int l,int r)
    
        {
        oddNumbers.push_back();
    cout<<"Enter second number";
            oddNumbers.push_back();

        for(unsigned int i=l+1;i<r;i++)
        {
            if (i%2!=0)
                oddNumbers.push_back()
                cin>>i;
        }

Patrice T

Где ты застрял?
Совет: перечитайте ваше требование.

Member 13420756

в ответных заявлениях

Patrice T

почему вы хотите использовать pushback-операторы в первую очередь ?

Member 13420756

как мы можем это сделать, или же вы можете сказать мне, пожалуйста... я новичок

Member 13420756

векторная функция была предопределена в вопросе. я должен использовать его принудительно

Patrice T

То, что вы просили сделать ?
Где они просили вернуть вектор ?

Member 13420756

Поэтому мне просто говорят, чтобы я выполнил эту функцию для этой проблемы
вектор < int & gt; oddNumbers(int m,int n)
{


}

Не пишите всю программу целиком
Эта функция должна принимать два nos m и n
и дисплей странный нос между M и N

Patrice T

Попробуйте вместо этого заполнить этот
void oddNumbers(int m, int n)
{

}
вас просят вернуть любую вещь.

Richard MacCutchan

Почему вы используете вектор, когда в инструкциях указано: "и напечатать нечетные числа"?

3 Ответов

Рейтинг:
2

Patrice T

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

vector <int> oddNumbers(int l,int r)

{
	oddNumbers.push_back();
	cout<<"Enter second number";
	oddNumbers.push_back();

	for(unsigned int i=l+1;i<r;i++)
	{
		if (i%2!=0)
			oddNumbers.push_back()
		cin>>i;
	}
}


Проблемы в вашем коде:
vector <int> oddNumbers(int l,int r)

{
	// where did you defined/declared oddNumbers ?
	oddNumbers.push_back(); // you have to tell what value to want to push back
	cout<<"Enter second number"; // which second number ?
	oddNumbers.push_back(); // you have to tell what value to want to push back

	for(unsigned int i=l+1;i<r;i++)
	{
		if (i%2!=0)
			oddNumbers.push_back() // a ; is missing here
		// you want to output i
		// because of not using {}, the cin is not in test
		cin>>i;
	}
	// you code do not return anything.
}


Рейтинг:
0

CPallini

Если вам нужно заполнить предложенную функцию, а именно

Цитата:
вектор < int & gt; oddNumbers(int m,int n)
{
}


Затем
vector < int > oddNumbers(int m,int n)
{
  vector<int> v;
  if ( m % 2 == 0) ++m;

  while ( m <= n )
  {
    v.push_back(m);
    m+=2;
  }
  return  v;
}


Рейтинг:
0

KarstenK

Вам не нужен такой вектор, как return. Код действительно должен быть легким:

void printOddNumbers(int l, int r)
{
 for( int i = l; i < r; i++)
 {
   if( i % 2 == 0 ) 
   {
     cout << i;
   }
 }
}


Код работает только в том случае, если r > l. подумайте, какую обработку ошибок или "исцеление" делать, если l < r.


CPallini

Это скорее странный, но это не работает, даже если l< r.