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

Заменить каждое третье положительное число средним арифметическим отрицательных чисел, вывести в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удвоить каждое слово во введённом предложении http://www.cyberforum.ru/cpp-beginners/thread1164295.html
Удвоить каждое слово во введённом предложении. На печать вывести введённую строку и результат её обработки.
C++ Найти количество одинаковых слов в строке #include <iostream> using namespace std; int main() { char str1 = "to be or not to be"; char* leks = strtok(str1, " "); while(leks) // <====================================== { http://www.cyberforum.ru/cpp-beginners/thread1164291.html
Рекурсия для вычисления суммы ряда C++
Используя рекурсивный вызов функции вычислить с заданной точностью сумму ряда: 2/3+4/9+6/27+8/81+... (GUI)
Сортировка односвязного списка пузырьком C++
Сортирую список по убыванию пузырьком (он заполняется 46 случайными числами от 1 до 26) Смысл понятен но в синтаксисе языка делаю ошибки. Собственно сам код #include <iostream> #include <conio.h> #include <ctime> #include <cstdlib> #include <list>
C++ Генератор случайных чисел для записи в бинарный файл http://www.cyberforum.ru/cpp-beginners/thread1164268.html
Здравствуйте. Есть задача: В файле содержатся числа. Сформировать квадратную матрицу из 25 последних чисел файла. Посчитать сумму элементов над главной диагональю полученной матрицы. Исходный файл формировать программно. Количество элементов исходного файла неизвестно. Так вот. Файлик бинарный. В него рандомим числа. Вот код нашего рандома: #include <time.h>
C++ Формирование двоичного кода для целой и дробной части + вывод в файл Упростила программу, но суть ясна. Выводит число, потом его целую и дробную часть, после чего переводит обе части в двоичную систему счисления. Целую часть конвертирует правильно, а с дробной проблемы. :( Кто-нибудь может помочь разобраться, почему двоичный код для дробной части неверный? #include <iostream> #include <fstream.h> #include <string> #include <stdio.h> #include <stdlib.h> подробнее

Показать сообщение отдельно
tema47
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
02.05.2014, 19:37     Заменить каждое третье положительное число средним арифметическим отрицательных чисел, вывести в файл
Записать выходной файл, заменив каждое третье положительное число средним арифметическим отрицательных чисел.

Дело в том, что я провел небольшой стресс-тест, к примеру: на первом и втором номере я ввел числа "+", на 3 номере число "-", на 4 номере число "+", в таком случае он мне должен был вывести на 4 номере среднее арифметическое, т.к. "каждое третье положительное", у нас же под 3-им номером "-", а первые два "+" значит после 3-его номера идет третье положительное число. У меня же ищет 3-е положительное немного иначе или же не дореализовал. Я ввожу на 3 месте отрицательное но на 4 месте там где положительное он не присваивает среднее ариф. а только после отриц. отсчитывает третье положительное. Объясните!
Вот код программы:
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
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{ 
    setlocale (LC_ALL, "rus");
    ofstream fout;
    int i, k=0;
    double sr, sum=0, a[25];
    fout.open("number.txt");
    cout<<"Введите (-10 до +10) случайные числа."<< endl;
    for (i=1;i<=20;i++)
    {
        cout<<"Введите "<<i<<" случайное число: ";
        cin>> a[i];
        cout<<endl;
        while (a[i]>10 || a[i]<-10)
        {
            cout <<"Введите корректное число (-10 до +10): ";
            cin >> a[i];
            cout << endl;
        }
        if (a[i]<0)
        {
            k=k+1;
            sum=sum+a[i];
        }
    }
        sr=sum/k;
        for (i=1;i<=20;i++)
        {
        if ((a[i]>0) && (i%3==0))
            a[i]=sr;
        }
        for (i=1;i<=20;i++)
        {
            cout << a[i] << endl;
            fout << i << ") " << a[i] << endl;
        }
        cout << endl;
    cout << sum << endl;
    cout << k << endl;
    while (k==0)
    {
        cout << "Деление на ноль невозможно!!! Выйдите из программы и перезапишите данные" << endl;
        system ("pause");
        return 0;
    }
    cout << sr << endl;
    fout.close ();
    system ("pause >> void");
    return 0;
}
Если что, вывод a[i], k, sum, sr - сделал для себя, как-то неохота лазить за выходным файлом для проверки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru