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

Как передать массив в массив с указателем - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный массив - как пройти по всех элементах http://www.cyberforum.ru/cpp-beginners/thread548722.html
такой вот вопрос: как пройти в двумерном массиве по всех элементах,тоесть ,например есть у меня массив m- 1 5 3 4 5 8 3 2 1 мне нужно сравнить элемент с нашего массива со всеми элементами этого же массива m,тоесть 1 с -4,5,8,3,2,1.Потом 5-4,5,8,3,2,1..........4-3,2,1.Если есть совпадение например вывести эти числа
C++ Описать класс для работы с числами Описать класс для работы с числами и реализовать ввод числа вывод числа сложение вычетание деление умножение http://www.cyberforum.ru/cpp-beginners/thread548710.html
C++ Подскажите пример контейнерного класса-массив и список
Помогите пожалуйста. Стандарные библиотеки типа list, CObject, AtlArray не надо - так очень долго разбираться. Мне надо самое примитивное. Чтобы парочка методов и основное назначение было. Искал - но нигде нету. Может вы видели?
Ошибки вроде бы нет, но работает не правильно! C++
Христос Воскресе! Вот код: #include <iostream> #include <conio.h> #include <clocale> #include <cstdlib> using namespace std; int main()
C++ Что здесь не так? http://www.cyberforum.ru/cpp-beginners/thread548433.html
// xc.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" // Таблица функции #include<math.h> #include <stdio.h> #include<locale.h> #include <conio.h>
C++ //unresolved external symbol "void_cdecl fun1(int,int)" (&fun1@@YAXHH@Z) referenced in function_main создал проект, нужно ввести двумерный массив, потом создать функцию которая будет проверять есть ли в массиве хотя бы одна строка, содержащая положительный элемент, и находить ее номер, а затем менять знаки элементов предыдущей строки #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; void fun1(int, int); void main() подробнее

Показать сообщение отдельно
Nadja
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 27

Как передать массив в массив с указателем - C++

15.04.2012, 02:28. Просмотров 359. Ответов 2
Метки (Все метки)

Как передать массив в массив с указателем тоесть например массив double c[30][30] в массив **а в этой функции
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
132
133
134
135
#include <windows.h>//malloc, system("pause")
#include <stdio.h>  //i/o
#include <conio.h>  //getch
#include <math.h>
 
void ShowVector(int n, double * vec);
void PryamoiHod(int n, double **a, double *b);
void ObratniHod(int n, double **a, double *b, double *x);
 
int main()
{
    int i,j,n;
    double **a, *b, *x;
    do
    {
        printf("Enter NUM of equations: ");
        scanf("%d",&n);
        //Выделяем память под матрицу А и векторы В и Х
        a = (double **)malloc(n*sizeof(double));
        b = (double *)malloc(n*sizeof(double));
        x = (double *)malloc(n*sizeof(double));
        for(i = 0; i < n; i++)
        {
            a[i] = (double *)malloc(n*sizeof(double));
            //Ввод a
            for(j = 0; j < n; j++)
            {
                printf("a[%d][%d] = ",i + 1,j + 1);
                scanf("%lf",&a[i][j]);
            }
        }
        //Ввод b
        for(i = 0; i < n; i++)
        {
            printf("b[%d] = ",i + 1);
            scanf("%lf",&b[i]);
        }
        
        printf("\tSee input\r\n");
        printf("Matrix A:\r\n");
        for(i = 0; i < n; i++)
            ShowVector(n, a[i]);
        printf("Vector B:\r\n");
        ShowVector(n, b);
        
        printf("\tSolving on Gauss method\r\n");
        PryamoiHod(n, a, b);
        printf("Forvard Gauss course\r\n");//Прямой ход
        printf("Matrix A:\r\n");
        for(i = 0; i < n; i++)
            ShowVector(n, a[i]);
        printf("Vector B:\r\n");
        ShowVector(n, b);
 
        ObratniHod(n, a, b, x);
        printf("Back Gauss course\r\n");//Обратный ход
        printf("Matrix A:\r\n");
        for(i = 0; i < n; i++)
            ShowVector(n, a[i]);
        printf("Vector B:\r\n");
        ShowVector(n, b);
 
        printf("Results :\r\n");
        ShowVector(n, x);
 
        printf("Press Y for new input\r\n");
        //Чистим память
        free((void *)a);
        free((void *)b);
        free((void *)x);
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
 
void ShowVector(int n, double * vec)
{
    for(int i = 0; i < n; i++)
        printf("%.3f ",vec[i]);
    printf("\r\n");
}
 
void PryamoiHod(int n, double **a, double *b)
{
        double v;
        for(int k = 0,i,j,im; k < n - 1; k++)
        {
                im = k;
                for(i = k + 1; i < n; i++)
                {
                        if(fabs(a[im][k]) < fabs(a[i][k]))
                        {
                                im = i;
                        }
                }
                if(im != k)
                {
                        for(j = 0; j < n; j++)
                        {
                                v                = a[im][j];
                                a[im][j] = a[k][j];
                                a[k][j]  = v;
                        }
                        v     = b[im];
                        b[im] = b[k];
                        b[k]  = v;
                }
                for(i = k + 1; i < n; i++)
                {
                        v               = 1.0*a[i][k]/a[k][k];
                        a[i][k] = 0;
                        b[i]    = b[i] - v*b[k];
                        if(v != 0)
                        for(j = k + 1; j < n; j++)
                        {
                                a[i][j] = a[i][j] - v*a[k][j];
                        }
                }
        }
}
 
void ObratniHod(int n, double **a, double *b, double *x)
{
        double s = 0;
        x[n - 1] = 1.0*b[n - 1]/a[n - 1][n - 1];
        for(int i = n - 2, j; 0 <= i; i--)
        {
                s = 0;
                for(j = i + 1; j < n; j++)
                {
                        s = s+a[i][j]*x[j];
                }
                x[i] = 1.0*(b[i] - s)/a[i][i];
        }
}
. обычное присваивание выдает ошибку о неправильных типах данных, а поэлементное ошибку о перегруженности.Подскажите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru