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

лабораторная с дин. матрицами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заданы два натуральных числа в десятичной системе счисления, состоящие из единиц. http://www.cyberforum.ru/cpp-beginners/thread289217.html
Единичный НОД (Время: 1 сек. Память: 16 Мб Сложность: 23%) Заданы два натуральных числа в десятичной системе счисления, состоящие из единиц. В первом числе ровно N единиц, а во втором их ровно M. Требуется найти НОД этих чисел. Напомним, что НОД (наибольший общий делитель) двух чисел a и b — это такое максимальное число c, что b делится на c и a делится на c. Входные данные В...
C (СИ) Как запретить ввод букв с клавиатуры Уважаемые форумчане,помогите,пожалуйста новичку,как сделать так чтобы нельзя было ввести с клавиатуры ничего , кроме цифр,и ограничить ввод до 4 символов,заранее спасибо. Добавлено через 1 минуту Забыл сказать,в си ,не си++,работаю в dev c++ http://www.cyberforum.ru/cpp-beginners/thread289216.html
В файл результатов напечатать исходный текст (эхо-печать), состояние сформированного линейного списка и найденные слова C++
Обработка екстовых файлов Задан исходный текст на русском языке. Длина текста - не более NL строк, длина строки - не более NS символов, длина слова не более NW символов. После обработки исходного текста полученные слова хранить в однонаправленном линейном не кольцевом списке. В полученном линейном списке найти слова, начинающиеся и заканчивающиеся заданной буквой. В качестве заданной буквы...
Как объединить два двумерных массива? C++
есть массивы А и B как их зделать в C, проста смотрел про одномерные массивы там все както проста но не пордходит к двухмерному даже функцию нашел как объединить одномерные массивы а про двух тишина какои та :( помогите вообщем
C++ Не понятное действие в классе http://www.cyberforum.ru/cpp-beginners/thread289178.html
зачем в 30 и 36 строке идет +1 к n и j //объект employee, использующий строковый тип данных #include <iostream> #include <string> using namespace std; /////////////////////////////////////////////////////////// class employee { private:
C++ Найти в массиве число в диапазоне. Найти в массиве из 30 элементов значение которое вписывается в диапазон больше 2.74 но меньше 3.5 !!! За ранее благодарен ! есть ли тут ошибки ? #include <iostream.h> int main() { подробнее

Показать сообщение отдельно
rrrFer
Заблокирован
05.05.2011, 20:28     лабораторная с дин. матрицами
вызов функции:
C++
1
ArrayInput(x,n,y,m);
тут m - количество делителей
смотрим реализацию:
C++
1
2
3
4
5
6
7
8
void ArrayInput(int** x,int n,int* y,int max)
{
    int c=0;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            if(max%*(*(x+i)+j)==0)
                *(y+c++)=*(*(x+i)+j);
}
тут последний параметр - это максимум, тоесть вместо максимума вы передаете в функцию число делителей, именно по этому массив может заполнится не полностью и вы увидите что-то типа:
-3 -842150451 -842150451
а также, выдать ошибку при выполнении, если количество делителей максимума меньше количестве делителей количества делителей максимума xD.

Добавлено через 1 минуту
работающий код:
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
void MatrixInput(int** x,int n);
void MatrixOutput(int** x,int n);
int MaximumOfMatrix(int** x,int n);
int CountingDividers(int** x,int n,int max);
void ArrayInput(int** x, int n,int* y, int m, int max);
void ArrayOutput(int* y,int n);
void FirstOddNumber(int** x,int n,int& a,int& b);
 
void main()
{
    int n=5;
    int** x;
    x = new int*[n];
    int* y;
 
    int max;
    int m;
    int a=0,b=0;
 
    for(int i=0;i<n;i++)
        x[i]=new int[n];
 
///////////////////////////
 
    MatrixInput(x,n);
    max=MaximumOfMatrix(x,n);
 
    cout<<"MATRIX"<<endl;
    MatrixOutput(x,n);
 
    m=CountingDividers(x,n,max);
    y=new int[m];
    ArrayInput(x,n,y,m,max);
    FirstOddNumber(x,n,a,b);
 
    cout<<endl<<"MAXIMUM IS "<<max<<endl;
    cout<<endl<<"ADDRES OF THE FIRST ODD NUMBER IN MATRIX IS: "<<a<<" "<<b<<endl;
    cout<<endl<<"ARRAY"<<endl;
    ArrayOutput(y,m);
    
 
///////////////////////////
 
    for(int i=0;i<n;i++)
        delete[] x[i];
    delete []x;
    delete[] y;
    cin.get(),cin.get();
 
}   
 
void MatrixInput(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()%104-15;
}
 
void MatrixOutput(int** x,int n)
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
            cout<<*(*(x+i)+j)<<" ";
        cout<<endl;
    }
}
 
int MaximumOfMatrix(int** x,int n)
{
    int max=x[0][0];
 
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            if(max<*(*(x+i)+j))
                max=*(*(x+i)+j);
 
    return max;
}
 
 
int CountingDividers(int** x, int n,int max)
{
    int s=0;
 
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            if(max%*(*(x+i)+j)==0)
                s++;
 
    return s;
}
 
void ArrayInput(int** x,int n,int* y,int m, int max)
{
    int c=0;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            if(max%*(*(x+i)+j)==0)
                *(y+c++)=*(*(x+i)+j);
}
 
void ArrayOutput(int* y,int n)
{
    for(int i=0;i<n;i++)
        cout<<*(y+i)<<" ";
    cout<<endl;
}
 
void FirstOddNumber(int** x,int n,int& a,int& b)
{
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            if(*(*(x+i)+j)%2!=0)
            {
                a=i;
                b=j;
                i=n;
                break;
            }
}
хотя, код-то кривой )
 
Текущее время: 23:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru