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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Анюта1989
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 3
13.04.2010, 18:22     массивы в C++ #1
Привет всем!=) Ребятки, дорогие, помогите плиз с задачей по C++, а то я сама уже задолбалась((((

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

вот что есть у меня
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h" 
#include <iostream> 
#define _USE_MATH_DEFINES 
#include <math.h> 
using namespace std; 
 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
int lim , i = 0, n, sum_nechNom, Sum_otr; (sum_nechNom - сумма элементов массива с нечетными номерами,Sum_otr -сумму элементов массива, расположенных между первым и последним отрицательными элементами )
cout << "Enter value n: ";\\  как я понимаю - ввод количества элементов массива 
cin >> n; 
 
double mas[100], sum_nechNom= 0, Sum_otr = 0 ; 
do { 
cin >> mas[i];\\ ввод самих элементов массива 
//i++; 
} while (++i < n); 
 
i = 0;sum_nechNom=Sum_otr=mas[0]; 
do {
Ну вот(((и то, я не уверенна что это правильно)...помогите пожалуйста, буду очень признательна.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2010, 18:22     массивы в C++
Посмотрите здесь:

Циклические массивы;Многомерные массивы!!!Срочно бы) C++
Одномерные массивы, Работа со строками, Многомерные массивы. C++
C++ Попадание точки. Массивы чисел. Массивы записей.
Целочисленная арифметика ,Одномерные массивы ,Двумерные массивы C++
Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Giggs131
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 19
13.04.2010, 19:49     массивы в C++ #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
srand(time(NULL));
for(int i=0;i<100;i++)
{
mas[i]=rand()%50-50;
cout<<mas[i]<<"\t";               //это всё генератор случайных чисел для быстрого заполнения массива
}
int summ=0;             //сумма нечётных чисел
for(int i=0;i<100;i++)
{
if(mas[i]%2==0) continue;
else summ+=mas[i];
}
cout<<summ;
int a=0,b=0,summ2=0;
for(int i=mas[0]; ;i++)      //сумму отрицательных элементов между"-""-"
{
if(mas[i]<0)
{
 a=i;
break;
}
else continue;
}
for(int i=mas[100-1]; ;i--)
{
if(mas[i]<0)
{
 b=i;
break;
}
else continue;
}
for(int i=a+1;i<b;i++)
{
summ2+=mas[i];
}
cout<<mas2;
Что-то тип того...по идее должно работать,но я сам начинающий..В последнюю часть задачи не въехал(

Добавлено через 46 секунд
Лишних скобочек понаставлял(
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
13.04.2010, 20:10     массивы в C++ #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
#include "stdafx.h" 
#include <iostream> 
#define _USE_MATH_DEFINES 
#include <math.h> 
using namespace std; 
 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
int lim , i = 0, n, sum_nechNom, Sum_otr; //(sum_nechNom - сумма элементов массива с нечетными номерами,Sum_otr -сумму элементов массива, расположенных между первым и последним отрицательными элементами )
cout << "Enter value n: ";// как я понимаю - ввод количества элементов массива 
cin >> n; 
 
double *mas, sum_nechNom= 0, Sum_otr = 0 ; 
mas = new double[n];
do { 
      cin >> mas[i++];// ввод самих элементов массива  
} while (i < n); 
 
i = 0;sum_nechNom = Sum_otr = 0; 
int bi=-1,ei=-1;
for(i = 0;i < n;i++) {
     if(mas[i] < 0 && bi == -1) bi = i;
     if(mas[i] < 0) ei = i;
     if(i%2 != 0) sum_nechNom += mas[i];
}
if(ei > bi && ei != -1 && bi != -1)
for(i = bi;i <= ei;i++)
{
     Sum_otr += mas[i];
}
int c=0;
for(i=0;i < n;i++)
{
     if(fabs(mas[i]) > 1) mas[c++] = mas[i];
}
for(i=c;i<n;i++) mas[i]=0;
 
cout>>Sum_nechNom>>endl;
cout>>Sum_otr>>endl;
}
Анюта1989
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 3
13.04.2010, 20:30  [ТС]     массивы в C++ #4
Uggway,Giggs131 - очень вам благодарна, спасибо большое что отозвались!

Но пока, к сожалению не получается запустить.

Giggs131, я вроде убрала лишние скобки но написано что есть 1на ошибка - fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.

Uggway в вашем коде определяется 4 ошибки - error C2371: sum_nechNom: переопределение; различные базовые типы
error C2371: Sum_otr: переопределение; различные базовые типы
error C2065: Sum_nechNom: необъявленный идентификатор
error C2088: >>: недопустимо для class

Может это я туплю, и что то не так делаю...Но вам друзья, я в любом случае, очень признательна!!
А то вообще никто из знакомых, даже вникать не хотят...
Giggs131
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 19
13.04.2010, 21:17     массивы в C++ #5
Попробуй так,ага=)?

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
#include<iostream>
#include<time.h>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    srand((unsigned)time(NULL));
    const int size=10;
    int mas[size];
    int summ=0,summ2=0,a=0,b=0;
    cout<<"Наш массив:\n\n";
    for(int i=0;i<size;i++)
    {
    mas[i]=rand()%25-10;
    cout<<mas[i]<<"\t";
    }
    system("pause");
    for(int i=0;i<size;i++)
    {
    if(mas[i]%2==0) continue;
    else summ+=mas[i];
    }
    cout<<"\nСумма нечётных чисел = "<<summ<<"\n\n";
    system("pause");
    for(int i=0;i<size;i++)
    {
    if(mas[i]<0)
    {
     a=i;
    break;
    }
    else continue;
    }
    for(int i=size-1;i>=0;i--)
    {
    if(mas[i]<0)
    {
    b=i;
    break;
    }
    else continue;
    }
    for(int i=a+1;i<b;i++)
    {
    summ2+=mas[i];
    }
    cout<<"\n\nПервое отрицательное число = "<<mas[a]<<"\nВторое отрицательное число = "<<mas[b]<<"\nСумма чисел между ними = "<<summ2<<"\n\n";
    system("pause");
    system("cls");
    puts("Пока!\n\n\n");
}
Добавлено через 1 минуту
Надо было директиву time.h
И вообще я там бред понаписывал...Зашёл сделал всё в компиляторе)
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 21:28     массивы в C++ #6
Цитата Сообщение от Анюта1989 Посмотреть сообщение
непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
Прочитайте внимательно и добавьте необходимую директиву в начало исходного файла, либо создавайте пустой проект.
1. Cумму элементов массива с нечетными номерами.
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
#include <iostream>
#include <ctime>
 
void fillRandom(int* arr, int size) {
  srand(time(NULL));
 
  for (int i = 0; i < size; ++i)
    arr[i] = rand();
}
 
int oddSum(const int* arr, int size) {
  int result = 0;
 
  for (int i = 0; i < size; ++i)
    if (i % 2 == 0)
      result += arr[i];
 
  return result;
}
 
int main() {
  int size;
 
  std::cout << "Enter size of array: ";
  std::cin >> size;
 
  int* arr = new int[size];
 
  fillRandom(arr, size);
 
  std::cout << "Sum of odd: " << oddSum(arr, size) << std::endl;
 
  return 0;
}
Giggs131
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 19
13.04.2010, 21:31     массивы в C++ #7
Сразу возникает вопрос...А на ваш взгляд,она знает,что такое функции и указатели???
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 21:35     массивы в C++ #8
Цитата Сообщение от Giggs131 Посмотреть сообщение
Сразу возникает вопрос...А на ваш взгляд,она знает,что такое функции и указатели???
Нет. И давайте не будем изучать того, чего не знаем и вернемся в пещеры есть сырое мясо, так?
Giggs131
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 19
13.04.2010, 21:52     массивы в C++ #9
Хм....А это идея!
Но всё таки лучше так:всему своё время....
Genius Ignat
13.04.2010, 22:24
  #10

Не по теме:

Giggs131:
Так про указатели.
Всё что мне известно это 4 байта позволяющие адресовать любую ячейку памяти,
по простому закону информатики: 2^32. все рассчитано, и зачитано.

CyBOSSeR
13.04.2010, 22:32
  #11

Не по теме:

Genius Ignat, есть ведь еще и 64-рязрядные системы. Поэтому размер указателя не всегда равен 4 байтам.

Genius Ignat
13.04.2010, 22:43
  #12

Не по теме:

Это я уточнять не стал.
Спасибо что напомнил...
Раз 64 бит значит 8 байт, главное смысл указателя указывать на ячейку памяти(Хранить её адрес).
Главное это выразить идею что(это) и с чем его жуют, а архитектурные параметры, сути дела
в вопросе шо це та ке указатель не играют, ну больше ячеек можно адресовать если 8 байт,

Анюта1989 если тебе интересно можешь почитать что за я тут накропал.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2010, 23:39     массивы в C++
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Анюта1989
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 3
13.04.2010, 23:39  [ТС]     массивы в C++ #13
Спасибо всем!=))))
Yandex
Объявления
13.04.2010, 23:39     массивы в C++
Ответ Создать тему
Опции темы

Текущее время: 08:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru