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

Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ на входе не переменные, а http://www.cyberforum.ru/cpp-beginners/thread703629.html
Здравствуйте! Помогите решить такую задачку. Вывести в порядке возрастания два числа, на входе условие (а>b или b>a). На выходе аb или ba. Не понимаю, в какую переменную сохранять условие для дальнейших действий(или вообще переменная не нужна?). Желательно привести код. Заранее благодарен.
C++ Ввод элемента массива структур нужно добавить новый элемент массива структуры, написал функцию, но она после вводы "Маршрута" пропускает дальнейшие действия и выводит на экран то что есть, а потом винда пишет ошибку Структура struct list { char way; float len_way; int time; }; http://www.cyberforum.ru/cpp-beginners/thread703626.html
C++ Вывести на экран все слова, которые начинаются с заглавной буквы
помогите написать программу которая находит и выводит на экран слова которые начинаются с заглавной буквы. Текст с которого нужно найти слова пользователь вводит сам. заранее спасибо. Добавлено через 37 минут // laba6bondin.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream" #include "cstring"
Структуры и классы C++
Пусть ЭВМ не умеет работать с вещест¬венными числами, а имеет только операции и функции для работы с символами, строками и целыми числами. Реализовать функции для: а) ввода; б) вывода; в) сложения; г) вычитания; д) умножения вещественных чисел. (Числа вводятся как строки, разделяются на целую и дробную части, и над ними, как над целыми числами, с учетом межразрядных переносов, выполняются...
C++ программа scilab http://www.cyberforum.ru/cpp-beginners/thread703604.html
Необходимо решить в пакете в scilab. В произвольно заданной матрице размером 5*6 определить элементы,которые снизу,сверху,справа и слева "окружены" меньшими значениями.Из найденных элементов сформировать одномерный массив.
C++ функторы && STL Знакомлюсь с функторами. Помогите реализовать поиск минимального числа в последовательности, средн.арифмет. в посл-ти и количество положительных чисел. Нужно использовать цикл for_each #include <iostream> #include <conio.h> #include <ctime> #include <algorithm> #include <vector> using namespace std; подробнее

Показать сообщение отдельно
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229

Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! - C++

20.11.2012, 21:43. Просмотров 281. Ответов 1
Метки (Все метки)

Некорректно работает функция sum! Она должна искать сумму между первым и последним положительным элементами! Когда первый элемент отрицательный вылетает ошибка! Что здесь не так?

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
#include <iostream>
#include <time.h>
#include <conio.h>
 
const int n=10;
 
using namespace std;
void inp(int []);
void out(int []);
void min(int [],int);
void sum(int []);
 
int main()
{
    srand(time(0));
    int a[n];
    inp(a);
    out(a);
    int m=a[0];
    min(a,m);
    sum(a);
    getch();
    return 0;
            
}
void inp(int a[n]){
     for(int i=0;i<n;i++)
            a[i]=rand()%5-1;}
            
void out(int a[n]){
     cout<<"You mass:\n";
     for(int i=0;i<n;i++)
             cout<<a[i];}
 
void min(int a[n],int m){
     for(int i=0;i<n;i++)
      if(m>a[i]) m=a[i];
    cout<<endl;
    cout<<"Min = "<<m;}
 
void sum(int a[n]){
     int pos,pos1,suma=0;
     for(int i=0;i<n;i++)
        if(a[i]>0){ 
           pos=i; 
           break;}
           
     for(int i=pos;i<n;i++){
     if(a[i]>0){ 
           pos1=i; 
           continue;
           }
           else
           break;}
     for(int i=pos;i<=pos1;i++)
     suma+=a[i];
     cout<<endl<<"Suma = "<<suma;
     }
Добавлено через 4 минуты
Уже не нужно, уже нашел ошибку)

Добавлено через 10 минут
Как сделать так чтобы сначала были нули, а затем все остальные элементы?
C++
1
2
3
4
5
6
7
8
void transform(int a[n]){
     int tmp;
     for(int i=0;i<n;i++)
         if(a[i]== 0){
            tmp=a[i-1];
            a[i-1]=a[i];
            a[i]=tmp;
            }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru