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

Найти сумму элементов массива, расположенных до последнего положительного элемента - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Файлы http://www.cyberforum.ru/cpp-beginners/thread576976.html
Напишите программу по любому из вариантов, который полегче. Адрес файла C:\secret.txt Буду очень благодарен. Учусь на авиадиспетчера. Не дайте умереть авиации!)) Вариант 1 Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке. Вариант 2 Написать программу, которая считывает текст из файла и выводит на экран только предложения,...
C++ электронные книги по ВС2010 Перешел на изучение базы данных... Посоветуйте хорошие электронные книги по ВС2010 (если есть такие). Благодарю за помощь ! http://www.cyberforum.ru/cpp-beginners/thread576966.html
C++ Найти наибольший и наименьший элементы и поменять их местами.
Помогите ребята задания вроде легкое. 1) Дано масив с 7 елементов. Типа INT. Нужно найти наибольший и наименьший элементы и поменять их местами. 2) Масив 6х4 розмерность и тип елементов Float. Нужно определить и напечатать количество отрицательных элементов в каждом столбце. Если не трудно сделайте. Буду благодарен!
C++ Однонаправленный список list
. Класс - однонаправленный список list. Дополнительно перегрузить следующие операции: + - добавить элемент в начало (list + item); - -удалить элемент из начала (- list) == - проверка на равенство. Прошу помочь в решении данной задачи . Добавлено через 16 минут на правах аппа
C++ Произведение, сумма элементов массива и его преобразование http://www.cyberforum.ru/cpp-beginners/thread576950.html
Помогите написать программу: В одномерном массиве, состоящем из n целых элементов, вычислить: • произведение элементов массива с четными номерами; • сумму элементов массива, расположенных между первым и последним нулевыми элементами. Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом — все отрицательные (элементы, равные 0, считать...
C++ APPCRASH при запуске .exe, через отладчик все OK Всем привет. Проблема вот в чем. Написал программу для курсача, но в ней оказалась какая-то ошибка. При компиляции программы и ее запуске в microsoft visual studio 10 через Ctrl+F5, вылетает ощибка APPCRASH. Если же проити отладчиком по программе, то все нормально работает. Немного поискав, нашел где возникает ошибка. Вот сама функция. int massive_bin(char* ch, int **ms)//функция записи числа в... подробнее

Показать сообщение отдельно
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
17.05.2012, 03:59     Найти сумму элементов массива, расположенных до последнего положительного элемента
Первое и второе


Не идеальное, но решение.

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
 
 
//Функция суммирования
void Summa(int *A,int size,int *sum) 
{
 int dx=size; //Позиция последнего положительного элемента
 int i=size;  //Счетчик циклов
 *sum=0;  //Изначально сумма равна нулю
 
//Проход по массиву с конца в поиске положительного элемента
 while (i>-1)
 {
  if (A[i]>-1) break; //Если нашли положительный, прерываем выполнение цикла
  else {dx--;} //Если не нашли, то меняем позицию dx
  i--;  
 }
 
//Суммирование от первого элемента массива до dx. dx = Позиция последнего положительного элемента
 for (i=0;i<dx+1;i++)
   {
    *sum=*sum+A[i];
   }
}
 
 
//Функция поиска максимального элемента внутри массива
void GetMax(int *A,int *max,int size)
{
 *max=A[0]; //Предположительно максимальный элемент - первый элемент массива
 for (int i=1;i<size+1;i++)
  {
    if (*max<A[i]) *max=A[i]; //При проходе по массиву циклом выполняем проверку и если нашли элемент больше, меняем max
  }
}
 
//Функция создания массива
void CreateArray(int *A,int N)
{
 
 srand(time(NULL));  //Запуск генератора случайных значений
for (int j=0;j<N+1;j++)
{
 //int i=rand()%(0x7fff);  Не знаю как будет правильно
 int i=rand()%(N+100)-50; //Случайная выборка чисел
 A[j]=i;
 cout<<i<<"  "; //Сразу выводим массив на экран
}
 cout<<endl<<endl<<endl;
}
 
void main()
{
 clrscr();
   int N; //Число элементов массива
   int max,summa; //То что нужно найти по заданиям
 
   cout<<"Elementov: ";
   cin>>N; N=N-1; //Вводим число элементов
 
   int *S=new int[N]; //Создаем массив выбранной размерности
     CreateArray(S,N); //Вызываем функцию генерирующую массив
     GetMax(S,&max,N); //Вызываем функцию поиска максимального элемента
     Summa(S,N,&summa); //Суммируем элементы массива
   delete []S; //Освобождаем память
 
 
//Вывод результатов на экран
   cout<<"RESULT"<<endl;
   cout<<"Max =   "<<max<<endl;
   cout<<"Summa = "<<summa<<endl;
 getch();
 return;
}
И не понял вот чего
Диапазон от нуля и дальше, но в задании нужна сумма до последнего положительного. Так они все положительные тогда быть должны и значит это тупо можно отбросить. Выходит и считать обычную сумму всех элементов, хотя и сделано как сказано
 
Текущее время: 03:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru