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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2010, 14:04   #1
CaTaNa
Пользователь
 
Регистрация: 28.11.2009
Сообщений: 14
По умолчанию В чем ошибка visual studio 2008 c++

Задача - Составте функцию, проверяющую, являеться ли одномерный массив монотонно убывающей последовательностью. Если это так, то выводиться сообщение " Массив являеться монотонно убывающей последовательностью" В противном случае выводиться " Массив не являеться монотонно убывающей последовательностью"

Моё решение :
Код:
#include <iostream>
using namespace std;
void mon(int n,int*a)
{
for(int i=1;i<n;i++)
if (a[i]>a[i-1])
cout << "массив ялвяеться монотонно убывающей последовательностью";
else 
cout <<"массив не являеться монотонно убывающей последовательностью";
}
void main ()
{
int const k=10;
int mas[k];
cout <<"\n Введите элементы массива";
for(i=0;i<k;i++)
cin>>a[i];
cout<<"сформированный массив:"
for(i=0;i<k;i++)
cout <<a[i]<<"_";
cout << mon(k,mas);
}
вот так. ошибок куча вылезает незнаю почему

Последний раз редактировалось Stilet; 04.02.2010 в 14:31.
CaTaNa вне форума Ответить с цитированием
Старый 04.02.2010, 14:32   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
cout << mon(k,mas);
mon не возвращает значения, а вы пытаетесь из него что-то получить
нужно просто вызвать функцию mon(k,mas);

да и функцию mon нужно переписать по-другому:

Код:
bool mon(int n,int*a)
{
bool fl=false;
for(int i=1;i<n;i++)
if (a[i]>a[i-1])
   fl=true;
else 
{
   fl=false;
   break;
}
if(fl)
 return true;
return false;
}

и тогда можно сделать так

Код:
if(mon(k,mas))
            cout <<"массив являеться монотонно убывающей последовательностью";
else
cout <<"массив не являеться монотонно убывающей последовательностью";
counter вне форума Ответить с цитированием
Старый 04.02.2010, 15:24   #3
CaTaNa
Пользователь
 
Регистрация: 28.11.2009
Сообщений: 14
По умолчанию

так как она должна выглядеть в конечном итоге? потомучто тут много тово чего я незнаю
CaTaNa вне форума Ответить с цитированием
Старый 04.02.2010, 17:42   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

Цитата:
так как она должна выглядеть в конечном итоге? потомучто тут много тово чего я незнаю
русский язык ты точно не знаешь

Код:
#include <iostream>

using namespace std;

bool isMon(int* pArray, int len)
{
	for (int i = 0; i < len - 1; ++i) {
		if (pArray[i] < pArray[i + 1]) {
			return false;
		}
	}
	return true;
}

int main(int argc, char* argv[])
{
	const int len = 5;
	int mass[len] = {5, 4, 3, 2, 1};
	cout << (isMon(mass, len) ? "mass is mon" : "mass is not mon") << endl;
	return 0; 
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 08.11.2012, 13:07   #5
StartX111
Новичок
Джуниор
 
Регистрация: 08.11.2012
Сообщений: 1
По умолчанию

извините, но конструкция

for (int i = 0; i < len - 1; ++i) {
if (pArray[i] < pArray[i + 1]) {
return false;
....

не совсем эффективна, так как оператор return "выкинет" сразу как будут проверены первые два значения.... (данная конструкция рабочая для идеального ряда, либо ряда состоящего из двух значений)
...
если ряд достаточно велик лучше использовать аппроксимацию! (групируем значения по два(или больше) и начинаем их сравнивать..(ведем лог "<>") после сравнений всех значений можно делать вывод)

Enjou!
StartX111 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Microsoft Visual Studio 2008 и Unicode ошибка компиляции --=SaNitinDG=- Visual C++ 7 27.01.2010 17:20
Ошибка устоновки MSDN в Visual Studio 2008 rus cab10 Error --=SaNitinDG=- Общие вопросы C/C++ 0 23.01.2010 20:59
Visual Studio Standard 2008 против Visual Studio Express 2008. Стоит ли покупать? Casper-SC Софт 4 31.12.2009 11:46
VISUAL STUDIO 2008 defaul language - как переключить в VISUAL STUDIO 2008 язык программирования, использ Эйнж Общие вопросы C/C++ 0 27.12.2009 20:39
Чем отличается режим Debug от Release в Microsoft Visual Studio 2008? Levsha100 Свободное общение 6 06.12.2009 22:29