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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
#1

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

11.03.2011, 19:52. Просмотров 340. Ответов 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 секунд
Если нужны коментарии-сделаю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2011, 19:52     не работает правильно счетчик
Посмотрите здесь:

Как правильно написать счетчик для нахождения самой длинной строки? - C++
Ввести массив строк и найти в нем максимальную по длине строку. Не учитывать случай, когда таких строк несколько. #include &quot;stdafx.h&quot; ...

Не работает счетчик операций - C++
Всем доброго вечера,может кто помочь? Изначально было задание переписать программу из паскалая в с++ включая процедуру findsum строки...

Почему не работает счетчик в функции? - C++
я написал вот такую не хитрую функцию , в ней все работает как надо,кроме переменной &quot;V&quot; - в чем проблема?(rm и lm это сокращенный код...

Не работает счетчик в методе определения различающихся элементов массива - C++
#include &quot;stdio.h&quot; int main() { const int n=29; double massiv; int i,j; int proverka=0; int d=0; for (i=0; i&lt;=n; i++) ...

Не правильно работает! - C++
Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значе-нию всех ее...

Не правильно работает! - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; using namespace std; double...

Не правильно работает. s = (a/(b*(c/(d*(e/(f*h)))))); - C++
2. На входе имеются вещественные числа a, b, c, d, e, f, h. Напишите программу для вычисления значения выражения В программе...

C++ Не правильно работает if - C++
Ребята, привет. Возник такой вопрос..В программе выполняю следующую вещь: f1= Have_Point(p1); ...

прога не правильно работает - C++
У меня ошибка в while но не знаю как исправить:( #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;clocale&gt; #include &lt;iomanip&gt; ...

Правильно ли работает программа? - C++
Программа должна определить маршрут заданной длины из заданной вершины. Но я сомневаюсь в ее правильной работе. Посоветуйте и покритикуйте!...

Почему работает не правильно??? - C++
// kjh.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; void f(void); ...

Код работает не правильно - C++
#include &lt;stdio.h&gt; void mystrcpy (char *d, char *s) { while (*s != '\0') { *d = *s;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
11.03.2011, 19:57     не работает правильно счетчик #2
iIndex и jIndex остаются в функции без изменений... Разве так и задумано?
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
11.03.2011, 20:30  [ТС]     не работает правильно счетчик #3
ForEveR, нет. Они должны поменяться в MaxInMatrix
Это место максимума

Добавлено через 28 минут
ну кто же ответьте на завтра нужно. Утром проверять будет препод
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru