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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Анюта1989
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 3
#1

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

13.04.2010, 18:22. Просмотров 2231. Ответов 12
Метки нет (Все метки)

Привет всем!=) Ребятки, дорогие, помогите плиз с задачей по 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++
Посмотрите здесь:

Даны массивы а и b. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi= -ai - Pascal
Даны массивы а и b, состоящие из n-элементов каждый. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi=...

Упорядочить массивы по по убыванию, потом соединить массивы в один упорядоченный массив - C (СИ)
Начала писать, запуталась Даны два одномерных массива состоящие из 10 целых чисел. Упорядочить массивы по по убыванию, потом соединить...

Даны массивы A(8), F(8),Q(8). Сформировать массивы С(8), каждый элемент которого вычисляется по формуле - Pascal ABC
uses crt; type mas=array of integer; var A,F,Q,C:mas; i,s:integer; begin clrscr; writeln('Массив первый:'); for i:=1...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы - C#
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил &quot;Запрещено создавать темы с множеством...

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

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

Файлы. Компоненты - массивы чисел. Переформировать файл, где сначала идут массивы с положительными макс. элементами - Turbo Pascal
Здравствуйте!! я пишу такую задачу: нужно написать две программы, одна из них создает файл, где компоненты - массивы вещ. чисел; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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++
2299 / 1669 / 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++
2299 / 1669 / 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++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

.NET 4.x Создать массив, содержащий массивы, которые, в свою очередь, содержат массивы, в которых уже будут храниться различные типы данных - C#
Мне нужно создать массив, содержащий массивы, которые, в свою очередь, содержат массивы, в которых уже будут храниться различные типы...

Статические массивы,Динамические массивы,строки - Delphi
1)Создать двумерный массив A(N,M) целых положительных и отрицательных чисел с помощью функции Random. Найти произведение всех четных...


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

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

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