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

не работает правильно счетчик - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В массиве double обрубаются знаки после запятой http://www.cyberforum.ru/cpp-beginners/thread255603.html
Всем привет и хорошего настроения! Мой вопрос: почему при выводе простого массива, элементы которого типа double, уменьшается количество знаков после запятой? Как сделать так, чтобы выводилось то же, что и вводится? #include<iostream> #include<cmath> using namespace std; int main() { const int n=10; double D={1.623250, 1.664792, 1.701977, 1.734832, 1.763404, 1.787764, 1.808002,...
C++ Создать управление программой Нужно было сделать программу, чтобы она управлялась через switch-case Вот что получилось: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> int* vvod_s_klavi(int size); http://www.cyberforum.ru/cpp-beginners/thread255597.html
неработает system("shutdown") C++
в программе необходимо сделать выключение компьютера, пишу system("shutdown -s -t now"); при выполнении этого кода на экран появляется CMD с хелпом команды shutdown (тоже самое как если ввести shutdown \?)
Даны целые числа а1 … а100 C++
Даны целые числа а1 … а100. Получить новую последовательность из 100 чисел, заменяя ai нулями, если не равно max(а1 … а100), и заменяя ai единицей в противном случае.
C++ Как вывести в файл list<string>? http://www.cyberforum.ru/cpp-beginners/thread255538.html
как вывести в файл список (list)? string symbol; list<string> the_list_input;
C++ приостоновить прогу на время Подскажите как приостановит прогу system("pause"); не то и можете сказать какие буквы/цифры какой цвет означаю. system( "color E2" ); подробнее

Показать сообщение отдельно
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1

не работает правильно счетчик - C++

11.03.2011, 19:52. Просмотров 337. Ответов 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
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
 
using namespace std;
 
void MatrixInp(int** x,int n);
void MatrixOut(int** x,int n);
void ArraysInp(int** x,int n,int* a,int* b);
void ArrayOut(int* x,int n);
int MaxInMatrix(int** x,int n,int& iIndex,int& jIndex);
int Summa(int** x,int n,int iIndex,int jIndex);
bool CheckForPrime(int a);
 
 
void main()
{
    int n;
    cout<<"n=";
    cin>>n;
    int iIndex,jIndex;
    iIndex=jIndex=0;
 
    int** x=new int*[n];
    int* a=new int[n];
    int* b=new int[n];
 
    for(int i=0;i<n;i++)
        x[i]=new int[n];
 
    cout<<"X MATRIX"<<endl;
    MatrixInp(x,n);
    MatrixOut(x,n);
    ArraysInp(x,n,a,b);
    cout<<endl<<"A ARRAY"<<endl;
    ArrayOut(a,n);
 
    cout<<endl<<"B ARRAY"<<endl;
    ArrayOut(b,n);
 
    int max=MaxInMatrix(x,n,iIndex,jIndex);
    int s=Summa(x,n,iIndex,jIndex);
 
    cout<<"Max in Matrix is: "<<max<<endl<<"S: "<<s<<endl;
 
    for(int i=0;i<n;i++)
        delete[] x[i];
 
    delete []x;
}
 
void MatrixInp(int** x,int n)
{
    srand(time(0));
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            *(*(x+i)+j)=rand()%10;
}
 
void MatrixOut(int** x,int n)
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
            cout<<*(*(x+i)+j)<<" ";
        cout<<endl;
    }
}
 
void ArrayOut(int* x,int n)
{
    for(int i=0;i<n;i++)
        cout<<*(x+i)<<" ";
    cout<<endl;
}
 
void ArraysInp(int** x,int n,int* a,int* b)
{
    for(int i=0;i<n;i++)
        *(a+i)=*(*(x+i)+i);
 
    for(int i=n-1;i>=0;i--)
        *(b+i)=*(*(x+i)+(n-1-i));
}
 
 
int MaxInMatrix(int** x,int n,int& iIndex,int& jIndex)
{
    int max=*(*(x));
    for(int i=0;i<n;i++)
        for(int j=1;j<n;j++)
            if(*(*(x+i)+j)>max)
            {
                max=*(*(x+i)+j);
                iIndex=i;
                jIndex=j;
            }
 
    return max;
}
 
 
 
int Summa(int** x,int n,int iIndex,int jIndex)
{
    int s=0;
    
    for(int i=0;i<n;i++)
        if(CheckForPrime(*(*(x+iIndex)+i)==1))
            s+=*(*(x+iIndex)+i);
 
    for(int i=0;i<n;i++)
        if(CheckForPrime(*(*(x+i)+jIndex)==1))
            s+=*(*(x+i)+jIndex);
    
    return s;
}
 
bool CheckForPrime(int a)
{
    bool t=1;
    for(int i=0;i<a;i++)
        if(i!=0)
        if(a%i==0)
        {
            t=0;
            break;
        }
    return t;
}
Расскажу не весь код, а тот отрезок где проблемы: так вот есть матрица динмачиеская. Надо найти максимум. Запомнить номера столбика и строки где максимум находится.. Потом пройтись над строкой и столбом, и найти простые числа,их сумму то есть.

Функция Summa возвращает сумму. Она вызывает функцию типа bool, который проверяет является ли число простым. Если нет возвращается 0, если да 1.Функция Summa получает ответ от CheckForPrime, и в зависимости от 0 и 1 делает прибавление...Проблема в том что Сумма выводится на столько большая, что все элементы матрицы при суммировке не дали бы такое число...Сумму может быть 50, когда матрица 2*2 и диапазон чисел [0;10)
Где ошибка?

Добавлено через 19 секунд
Если нужны коментарии-сделаю
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru