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

Найдите ошибку, неправильно выводится произведение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод текста. Мигает. Как от этого избавиться? http://www.cyberforum.ru/cpp-beginners/thread604210.html
LRESULT CALLBACK WindowProcedureWindowChart(HWND Window , UINT Message , WPARAM First , LPARAM Second ) { HDC Context; PAINTSTRUCT PaintSturcture; switch (Message) { case WM_PAINT:...
C++ Строки. Спортивные команды одного города. Задача про спортивные команды.Одно из условий вывести команды одного города.Вот фрагмент программы.Прошу проверить на ошибки,и подправить меня.Программа запускается без ошибок но вывода нету.Впервые работаю с strcmp,и взял пример и хелпа,поэтому возможно что-то не так. void zad2() { clrscr() char *gorod; int ptr; FILE *fp; fp=fopen("spisok","r+"); http://www.cyberforum.ru/cpp-beginners/thread604193.html
C++ Изменение значение переменной в одном выражении
Доброго утра! Написала такую нехитрую программку, посмотреть что будет, если вычислить j++ * ++j/j-- * --j... и тут я в ступоре....((( почему такой результат?? #include <iostream> int main(int argc, char ** argv) { int j, tmp; std::cout << "j-> "; std::cin >> j; tmp = j; std::cout << "j++ * ++j/j-- * --j -> " << j++ * ++j/j-- * --j << "\n";
Где напартачено C++
Добрый день. Помогите найти ошибки в коде. # include <Windows.h> # include <memory.h> BOOL InitApp (HINSTANCE); LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAME); char szClassName="Windows AppClass"; //строка содержащая имя класса char szWindow ="Windows App";
C++ Считывание записей из файла (C++) http://www.cyberforum.ru/cpp-beginners/thread604119.html
Задание: Бинарный файл (текстовый файл) содержит записи, каждая из которых включает следующую информацию: строку1 символов, под которую выделено 25 байт; символ (для записи в текстовом файле под него занято 2 байта) строку2 символов, под которую выделено 5 байт; массив из 15 целых чисел в диапазоне от -99 до 99(для записи в текстовом файле под каждое такое число выделено по 3 байта). В...
C++ Ассемблерная вставка Здравствуйте! Помогите перевести следующий код на ассемблер, что в VS C++ вставить ассемблерную вставку. cout <<"Vvedite n\n"; cin >>n; while (x<n) {x++; a+=(1/x); } cout <<"a="<<a; подробнее

Показать сообщение отдельно
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.06.2012, 22:01     Найдите ошибку, неправильно выводится произведение
Можно сделать немного по-другому вот так

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
77
78
79
80
81
82
83
84
85
86
#include <iostream> 
#include <cstdlib> 
#include <algorithm>
#include <ctime>
using namespace  std;
int main() 
{   
    setlocale(0, "rus");
    srand((unsigned) time(0)); 
    const int N = 10;  // размер массива
    int i;
    int array[N];  
    int sum_min = 0; // сумма отрицательных
    int product = 1; // произведение
    int min, max; 
    int min_index, max_index;
 
    for ( i = 0; i < N; i++) array[i] = rand() % 201 - 100;  //заполняем случайными числами от -100 до 100
 
    for ( i = 0; i < N; i++) cout << array[i] << " ";  // выводи массив
    cout << endl; 
 
    for ( i = 0; i < N; i++) 
        if(array[i] < 0) 
            sum_min += array[i]; // считаем сумму
    
    cout << "Сумма минимальных элементов равна " << sum_min << endl; 
 
    min = array[0];
    for ( i = 1; i < N; i++)  
        if(min > array[i]) 
        { 
            min = array[i]; 
            min_index = i;   // индекс минимального элемента
        } 
 
        max = array[0]; 
 
        for ( i = 1; i < N; i++) 
            if( max < array[i]) 
            { 
                max = array[i]; 
                max_index = i;  // индекс максимального элемента
            } 
 
            cout << "Минимальный элемент расположен " << min_index << endl; 
            cout << "Максимальный элемент расположен " << max_index << endl; 
 
    
 
            if( min_index > max_index)  // если минимальный больше максимального
            {
                if( min_index - max_index == 1) // если числа расположены рядом
                    cout << "В промежутке нет чисел "; 
                else
                {
 
                for ( i = max_index + 1; i < min_index; i++) // считаем произведение
                    product *= array[i];  
                cout << "Произведение элементов равно " << product <<  endl; 
                }  
            }
 
                if( max_index > min_index)  
                {
 
                    if( max_index - min_index == 1) // если расположены рядом
                        cout << "В промежутке нет элементов " << endl; 
                    else 
                    { 
                        for ( i = min_index + 1; i < max_index; i++) 
                            product *= array[i]; 
                        cout << "Произведение элементов равно " << product <<  endl; 
                    }  
                }  
 
                cout << endl;
 
                sort(array, array+N);  // сортирум элементы
 
                for ( i = 0; i < N; i++) // выводим отсортированный
                    cout << array[i] << " "; 
                cout << endl;
 
                return 0;
}
 
Текущее время: 08:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru