Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.84
k1
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 32
#1

массивы С++ - C++

14.02.2011, 14:37. Просмотров 5566. Ответов 14
Метки нет (Все метки)

Уважаемые програмисты помогите в решении задачи

1. Написать программу, определяющая сумму элементов массива, находящихся в массиве между первым и последним отрицательными элементами.Если таковых нет выдать соответствующее сообщение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2011, 14:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массивы С++ (C++):

Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100) - C++
Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание. Заполнить массивы случайными числами, лежащими в интервале 0 до...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

Попадание точки. Массивы чисел. Массивы записей. - C++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...

Массивы структур, массивы векторов - C++
Разработайте тип данных «Вектор в трехмерном пространстве» в виде структуры, поля которой — координаты вектора. Напишите следующие функции:...

Массивы структур и массивы строк - C++
1. Сформировать динамический массив из элементов структурного типа. Структурный тип определен в варианте. 2. Распечатать...

14
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
14.02.2011, 15:23 #2
ну как то так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int main ()
{
    int *array, count, firstNegative = -1, lastNegative = -1, sum = 0, i;
    setlocale(2, ".1251");
    srand((unsigned)time(NULL));
    printf("Введите количество элементов в массиве: ");
    scanf("%d", &count);
    array = malloc(count*sizeof(int));
    //Массив заполняется случайными числами
    for (i = 0; i < count; i++)
    {
        printf("%d ", (array[i] = -50+rand()%100));  //случайные числа от -50 до 50
        if (array[i] < 0)
            lastNegative = i;
    }
    for (i = 0; i < count; i++)
    {
        if (array[i] < 0)
        {
            firstNegative = i;
            break;
        }
    }
    if (lastNegative == firstNegative) //если есть только один отрицательный элемент
    {
        printf("\nНедостаточно отрицательных элементов!");
        return 1;
    }
    if (lastNegative - firstNegative == 1) //если первый и последний отрицательные элементы соседние
    {
        printf("\nНет элементов между первым и последним отрицательными!");
        return 2;
    }
    for (i = firstNegative+1; i < lastNegative; i++)
        sum += array[i];
    printf("\nСумма между первым и последним отрицательными: %d", sum);
    free(array);
    //getch();
    return 0;
}
1
Snoopy
1912 / 1069 / 90
Регистрация: 06.12.2008
Сообщений: 2,802
14.02.2011, 15:28 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream.h>
using namespace std;
int main()
{
    int n, i, a[n];
    cout << "n= ";
    cin >> n;
    srand(time(0));
    for (i=0; i<n; i++)
        {
              a[i]=rand()%10-2;
              cout << a[i] << "  ";
        }
    cout << "\n";
    int n1, n2;
    bool l=true;
    for (i=0; i<n; i++)
        if (a[i]<0)
           {
                   n1=i;
                   break;
           }
        else
            l=false;
    bool t=true;
    if (l==true)
       cout << "\nError!";
    else
        {
         for (i=n1+1; i<n; i++)
                if (a[i]<0)
                 {  
                            n2=i;
                            break;
                 }
                else
                    t=false;
        }
    if (n2-n1==1)
       cout << "\nError!!!";
    else
        {
            if (t==false)
               cout << "\nError!!!";
            else
                {
                 int s=0;
                 for (i=n1+1; i<n2; i++)
                     s+=a[i];
                 cout << "\nS= " << s;   
                 }
        }
    cout << "\n";
    system("\npause");
    return 0;
}
1
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 483
14.02.2011, 15:28 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int sum=0,index_pol=-1,index_otr=-1,i,n;
n;//кол во эл ов массива
for(i=0;i<n;i++)
if(mas[i]<0) index_otr=i;//нашли индекс последнего отрицательного
 
 
for(i=n;i>0;i--)
if(mas[i]>=0) index_pol=i;//нашли индекс первого положительного
 
 
if(index_pol<index_otr && (index_otr !=-1 || index_pol!=-1))
for(i=index_pol+1;i<index_otr;i++)
sum+=mas[i];//счиатем сумму
 
else printf("Ошибка");
Писал без компилятора могут быть ошибки, но идея надеюсь понятна.
0
k1
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 32
14.02.2011, 16:21  [ТС] #5
Пишет 3 одинаковые ошибки в коде From_Tula

'mas' : undeclared identifier

что нужно подправить?

в коде Snoopy пишет что неправельная 1 строка тоесть библиотека
0
PsiYar
122 / 118 / 22
Регистрация: 10.02.2011
Сообщений: 199
14.02.2011, 16:34 #6
просто mas забыли описать
0
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 483
14.02.2011, 16:35 #7
k1, я говорил писал без компилятора, щас 10 мин, пришлю рабочий код.
Еще в какой оболчке ты пишешь?
0
k1
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 32
14.02.2011, 16:44  [ТС] #8
С++
#include <iostream>
using namespace std;
int main()
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
14.02.2011, 16:44 #9
Цитата Сообщение от From_Tula Посмотреть сообщение
Еще в какой оболчке ты пишешь?
Что значит "оболочка"?
0
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 483
14.02.2011, 16:47 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
void main()
{
int mas[20],sum=0,index_pol=-1,index_otr=-1,i,n,j=0;
printf("Введите кол - во эл-ов массива: ");
scanf("%d",&n);
printf("Введите эл-ты массива: ");
while(j<n)
{
scanf("%d",&mas[j]);
j++;
}
 
for(i=0;i<n;i++)
if(mas[i]<0) index_otr=i;//нашли индекс последнего отрицательного
 
 
for(i=n;i>0;i--)
if(mas[i]>=0) index_pol=i;//нашли индекс первого положительного
 
 
if(index_pol<index_otr && (index_otr !=-1 || index_pol!=-1))   
{
for(i=index_pol;i<index_otr;i++)
sum+=mas[i];//счиатем сумму
 printf("Сумма = %d",sum);
} 
else printf("Ошибка"); 
 
}
Добавлено через 2 минуты
Nameless One, не првильно выразился) каким компилятором пользуешься(а может и снова не так)
Ну он понял и походу это VS
1
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
14.02.2011, 16:49 #11
Цитата Сообщение от From_Tula Посмотреть сообщение
и походу это VS
откуда такие выводы?
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
14.02.2011, 16:49 #12
Цитата Сообщение от From_Tula Посмотреть сообщение
Nameless One, не првильно выразился) каким компилятором пользуешься(а может и снова не так)
Ну он понял и походу это VS
уже лучше VS - это IDE, а использует она компилятор cl.exe
0
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 483
14.02.2011, 16:57 #13
fasked, а может и нет, может вообще DEV C++, в VS вроде еще #include "stdafx.h" нужно.
А может я вообще ошибаюсь
0
k1
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 32
14.02.2011, 17:02  [ТС] #14
в программе вместо
("Введите кол - во эл-ов массива: ")
высвечиваютса какието непонятные буквы, в чем причина
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
14.02.2011, 17:05 #15
Эту тему читал?
0
14.02.2011, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2011, 17:05
Привет! Вот еще темы с ответами:

Массивы структур и массивы строк - C++
Здравствуйте. Возникла проблема с одной работой: Постановка задачи: 1. Сформировать динамический массив из элементов структурного типа....

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...

индексные массивы и адресные массивы - C++
погитите решить задачу c массивами двумя способами {индексные и адресные} { Вычислить суммы элементов каждой строки матрицы Х(20х20),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru