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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 16:48   #1
blondino4ka_milk
Пользователь
 
Аватар для blondino4ka_milk
 
Регистрация: 02.03.2010
Сообщений: 59
По умолчанию Одномерный массив C++

не получается 1-ое и 3-е задание! =(

В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) номер минимального элемента массива;
2) сумму элементов массива расположенных между первым и вторым отрицательными элементами.
3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом все остальные.

Код:
#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <windows.h>

char*Rus(const char*text);

int main()
{
int n;
cout<<Rus("Ââåäèòå êîëè÷åñòâî ýëåìåíòîâ  "); cin>>n;
int i;
int *m=new int [n];
cout<<Rus("Ââåäèòå ýëåìåíòû ìàññèâà  ");
for (i=0;i<n;i++) cin >>m[i];
for (i=0;i<n;i++) cout<<m[i]<<' ';
//íîìåð ìèíèìàëüíîãî ýëåìåíòà ìàññèâà
int min=m[0];
int nom_min=0;
for (i = 1; i <= n; i++)
        {
        if (m[i] < min)
                {
                min = m[i];
                nom_min = i+0;
                };
        };
printf("Nomer min elementa massiva %i\n ",nom_min);
 
//îòðèöàòåëüíûå ýëåìåíòû íîìåðà
int n1 = 0, n2 = 0;
 
//îïðåäåëåíèå íîìåðà ïåðâîãî îòðèöàòåëüíîãî ýëåìåíòà
for (i = 0; i <= n; i++)
        {
        if (m[i] < 0)
                {
                n1 = i;
                break;
                };
        };
 
//îïðåäåëåíèå íîìåðà âòîðîãî îòðèöàòåëüíîãî ýëåìåíòà
for (i = n1+1; i <= n; i++)
        {
        if (m[i] < 0)
                {
                n2 = i;
                break;
                };
        };
//ïðîâåðêà íà ñóùåñòâîâàíèå ãðàíèö îòðèöàòåëüíûõ ýëåìåíòîâ
if ((n2 != 0) && (n1 != n2))
        {
        int sum_mezhdu = 0;
        //íàõîæäåíèå ñóììû ýëåìåíòîâ ìåæäó ïåðâûì è ïîñëåäíèì îòðèöàòåëüíûì ýëåìåíòîì
        for (i = n1+1; i < n2; i++)
                {
                sum_mezhdu += m[i];
                };
        printf(Rus("Ñóììà ýëåìåíòîâ  ìàññèâà, ðàñïîëîæåííûõ  ìåæäó ïåðâûì  è âòîðûì îòðèöàòåëüíûìè  ýëåìåíòàìè ðàâíà:\n"),sum_mezhdu);
        }
        else printf(Rus("ERroR: â ìàññèâå îòñóòñòâóþò äâà îòðèöàòåëüíûõ ýëåìåíòà!\n"));
 
//óïîðÿäî÷åíèå ýëåìåíòîâ ìàññèâà ïî ìîäóëþ áîëüøèõ åäèíèöû
for (i = 0; i < n; i++)
        {
        if (fabs(m[i]) < 1)
                {
                int k,pr_per=0;
                k = i;
                for (k = i; k < n; k++)
                        {
                        m[k] = m[k+1];
                        m[n] = 0;
                        };
                };
        };
        
//âûâîä ìàññèâà ïîñëå ïðåîáðàçîâàíèÿ
for (i = 0; i < n; i++)
        {
        printf("%i ",m[i]);
        };
 
//çàäåðæêà
int u;
scanf("%i",&u);
return 0;
}
char bufRus[256];
char*Rus(const char*text){
CharToOem (text,bufRus);
return bufRus;}
blondino4ka_milk вне форума
Старый 30.03.2010, 17:27   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Пиши ПМ, сделаю дешево и качественно
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума
Старый 30.03.2010, 18:15   #3
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от blondino4ka_milk Посмотреть сообщение
не получается 1-ое и 3-е задание! =(
Что во втором получается, тоже, кстати, не видно...

Тыкать носом в ошибки? Или уже с Rosом договорились?
Vago вне форума
Старый 30.03.2010, 18:32   #4
blondino4ka_milk
Пользователь
 
Аватар для blondino4ka_milk
 
Регистрация: 02.03.2010
Сообщений: 59
По умолчанию

Vago
Как? второе всё отлично получается =)
лучше тыкать на ошибки, сама хочу разобраться! =)
blondino4ka_milk вне форума
Старый 30.03.2010, 18:50   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

0. Глобальные.

0.1. По условию - массив из вещественных эл-тов. А у Вас, что m[], что все вспомогательные переменные для работы с ним, - типа int.

0.2. Очень любите выходить за пределы массива:
for (i = 0; i <= n; i++)
В трёх местах заметил.

0.3. Вывод в какой-то одной манере делайте. Либо всё через << , либо всё через printf(). А то порядок вывода результатов удивит

1. Исправьте 0.1 и 0.2 - всё должно пойти.

2. 0.2 в двух местах.
Цитата:
Сообщение от blondino4ka_milk Посмотреть сообщение
Как? второе всё отлично получается =)
А у меня сама сумма, например, не выводится. Что неудивительно, т.к. Вы для него формат не прописали.

Исправляйте. Далi буде...
Vago вне форума
Старый 30.03.2010, 19:55   #6
blondino4ka_milk
Пользователь
 
Аватар для blondino4ka_milk
 
Регистрация: 02.03.2010
Сообщений: 59
По умолчанию

Сделала в другой манере =) Но улучшения нет =(
Код:
#include <iostream.h>
#include <math.h>
#include <windows.h>

char*Rus(const char*text);

int main()
{
const int n=5;
int m[n];
int i;
cout<<Rus("Введите ")<<n; cout<<Rus(" целых чисел;")<<endl;
for (i=0;i<=n;i++) cin >>m[i];
for (i=0;i<=n;i++) cout<<m[i]<<' ';
//номер минимального элемента массива
int min=m[i];
int nom_min=n;
for (i = 1; i <= n; i++)
        {
        if (m[i] < min)
                {
                min = i;
                nom_min = i+0;
                };
        };
cout<<Rus("\nНомер минимального элемента массива: ")<<nom_min; cout<<Rus(";");
 
//отрицательные элементы номера
int n1 = 0, n2 = 0;
 
//определение номера первого отрицательного элемента
for (i = 0; i <= n; i++)
        {
        if (m[i] < 0)
                {
                n1 = i;
                break;
                };
        };
 
//определение номера второго отрицательного элемента
for (i = n1+1; i <= n; i++)
        {
        if (m[i] < 0)
                {
                n2 = i;
                break;
                };
        };
//проверка на существование границ отрицательных элементов
if ((n2 != 0) && (n1 != n2))
        {
        int sum_mezhdu = 0;
        //нахождение суммы элементов между первым и последним отрицательным элементом
        for (i = n1+1; i <= n2; i++)
                {

                sum_mezhdu += m[i];
                };
        cout<<Rus("\nСумма элементов  массива, расположенных  между первым  и вторым отрицательными  элементами равна:\n")<<sum_mezhdu;
        }
        else cout<<Rus("\nERroR: в массиве отсутствуют два отрицательных элемента!\n");
 
//упорядочение элементов массива по модулю больших единицы
for (i = 0; i <= n; i++)
        {
        if (fabs(m[i]) < 1)
                {
                int k,pr_per=0;
                k = i;
                for (k = i; k < n; k++)
                        {
                        m[k] = m[k+1];
                        m[n] = 0;
                        };
                };
        };


        
//вывод массива после преобразования
for (i = 0; i <= n; i++)
        {
		
        cout<< m[i];
        };
 

//////////////
//задержка
int u;
cin>>u;
return 0;
}
char bufRus[256];
char*Rus(const char*text){
CharToOem (text,bufRus);
return bufRus;}
blondino4ka_milk вне форума
Старый 30.03.2010, 20:00   #7
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Простите, Вы мои замечания 0.1 и 0.2 прочитали?...
Vago вне форума
Старый 30.03.2010, 20:09   #8
blondino4ka_milk
Пользователь
 
Аватар для blondino4ka_milk
 
Регистрация: 02.03.2010
Сообщений: 59
По умолчанию

ахах! я же блондинка! xD
да я конечно читала!
0.1 float m[n]
а 0.2 мне не помогло =(
blondino4ka_milk вне форума
Старый 30.03.2010, 20:24   #9
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Значит, в угол, на горох!..

Код:
...
const int n=5;
double m[n];
int i;
cout<<Rus("Введите ")<<n; cout<<Rus(" целых чисел;")<<endl;
for (i=0;i<n;i++) cin >>m[i];
for (i=0;i<n;i++) cout<<m[i]<<' ';
//номер минимального элемента массива
double min=m[0];
int nom_min=0;
for (i = 1; i < n; i++) {
   if (m[i] < min) {
       min = m[i];
       nom_min = i;
   }
}
cout<<Rus("\nНомер минимального элемента массива: ")<<nom_min; cout<<Rus(";");
...
Первая. Ищите отличия от своей...
Vago вне форума
Старый 30.03.2010, 20:31   #10
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Код:
...
//отрицательные элементы номера
int n1 = 0, n2 = 0;
 
//определение номера первого отрицательного элемента
for (i = 0; i < n; i++) {
    if (m[i] < 0) {
        n1 = i;
        break;
    }
}
 
//определение номера второго отрицательного элемента
for (i = n1+1; i < n; i++) {
    if (m[i] < 0) {
        n2 = i;
        break;
    }
}

//проверка на существование границ отрицательных элементов
if ((n2 != 0) && (n1 != n2)) {
    double sum_mezhdu = 0;
    //нахождение суммы элементов между первым и последним отрицательным элементом
    for (i = n1+1; i < n2; i++) {
        sum_mezhdu += m[i];
    };
    cout<<Rus("\nСумма элементов  массива, расположенных  между первым  и вторым отрицательными  элементами равна:\n")<<sum_mezhdu;
} else 
    cout<<Rus("\nERroR: в массиве отсутствуют два отрицательных элемента!\n");
...
Вторая...
Vago вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Одномерный массив. medic357 Общие вопросы C/C++ 1 23.03.2009 19:39
Одномерный массив Алeксандр Паскаль, Turbo Pascal, PascalABC.NET 3 22.01.2009 22:24
Одномерный массив xxxPascalxxx Помощь студентам 3 18.01.2009 15:23