3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
1

Динамические массивы

23.12.2010, 15:17. Показов 1892. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите выполнить задание
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
void main()
{
    int n,m;
    unsigned int **a;
    int i,j;
    printf("Vvedite n->"); scanf("%d",&n);
    printf("Vvedite m->"); scanf("%d",&m);
    a=new unsigned int*[n];
    for(i=0;i<n;i++)
    {
        a[i]=new unsigned int[m];
    }
    printf("\n\nMASSIV A: \n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            a[i][j]=rand()%50-50;
            printf("%d", a[i][j]);
        }
         printf("\n");
    }
}
вот в этой програме мне нужно число с наибольшим по модулю значенеем заменить на 0 и я не знаю как указать на больший элемент масива по модулю.
и вот в этой програме я незнаю как энтеграл написать
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void main()
{
        int r;
        unsigned int *b;
        printf(" Vvedite rasmer>");
        scanf("%d", &r);
        printf("\nmassiv A\n");
        b=new unsigned int*[r];
        
        for (int m = n - 2; m >= 1; m *= i, m -= 2)
        {    
            for(int i=0;i<r;i++)
            {
                b[i]=i/!!!!!!!!!;
                printf("%d", b[i]);
        
            
            
        }
    
}
как энтеграл представить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2010, 15:17
Ответы с готовыми решениями:

Динамические массивы и функции. Динамические массивы.
Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий элементы матрицы, кратные...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц)
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник...

Структуры, массивы, указатели, динамические массивы структур
Помогите с решением задачи (прикрепляю условие). Заранее спасибо.

Динамические массивы
Нужно создать массив из строк string, причем их количество заранее неизвестно (и вбить их значение...

27
4 / 4 / 0
Регистрация: 18.10.2010
Сообщений: 27
23.12.2010, 15:43 2
И еще вопросик от меня, возможно не по теме:

C++
1
a=new unsigned int *[n];
Что означает эта строчка? Особенно *[n].

я читал, что динамический массив создается примерно так:

C++
1
2
int n = 10;
float *m = new float [n];
1
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
23.12.2010, 16:46  [ТС] 3
это вот
C++
1
a=new unsigned int *[n];
как нас учили якобы выделение памети под n . n должно вводится с клавиатуры вместе с m . сам операт ор new это выделение памяти и чтоб её освободить потом надо писать delete (b gthtvtyye. rjnjhe. yflj cnthtnm)Сам я учусь на 1 курсе нам ничего не обьясняют до всего сам дохожу хорошо люди добрые сдесь помогают) Так что лучше меня не слушать возможно яя сам ошибаюсь. И ещё как я понял учат все по разному нас учат пользоватся printf scanf а паралельную групу другой преподаватель cout и ещё чтото
0
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
23.12.2010, 16:50 4
модуль.
C
1
#include <math.h>
и после чего fabs(x)
где x-число от которого нужно взять модуль...
C++
1
2
3
4
5
6
7
8
9
10
//Функция поиска максимума по модулю
float max(float**a){
float max=a[0][0];
for (int i=0; i<n; i++) {
for (int j=0; j<m; j++){
if (max<fabs(a[i][j])){ max=fabs(a[i][j]);};
};
};
return max;
}
1
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
23.12.2010, 16:54 5
Цитата Сообщение от fygaska Посмотреть сообщение
я читал, что динамический массив создается примерно так:
Так создается одномерный динамический массив, а так

C++
1
2
3
4
5
6
int **arr;
arr=new int*[m];
for(int i=0; i<m; i++)
{
   arr[i]=new int[n];
}
двумерный массив mxn!!!!

Добавлено через 2 минуты
Цитата Сообщение от Steam.dll Посмотреть сообщение
нас учат пользоватся printf scanf а паралельную групу другой преподаватель cout и ещё чтото
На форуме уже много раз говорилось, что scanf,printf - ето СИшные функции, в то время как cin,cout - функции С++!!!
2
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
23.12.2010, 16:57 6
Цитата Сообщение от MILAN Посмотреть сообщение
в то время как cin,cout - функции С++!!!
Поправка: это не функции, а обекты классов.
cin - обект класса istream
cout - обект класса ostream
1
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
23.12.2010, 17:00 7
Цитата Сообщение от MILAN Посмотреть сообщение
На форуме уже много раз говорилось, что scanf,printf - ето СИшные функции, в то время как cin,cout - функции С++!!!
Вот интересно, есть ли для С++ что-то такое же удобное как printf?
А то вывод форматной строки, с разными форматами (строка, int, double с разной точностью) превращается в простыню кода.
Нет ли чего, похожего хотя бы на python-овский "".format(), чтобы было просто в использовании?
1
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
23.12.2010, 17:03 8
Цитата Сообщение от knkd Посмотреть сообщение
Вот интересно, есть ли для С++ что-то такое же удобное как printf?
cout чем не устраевает ?
1
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
23.12.2010, 17:21 9
Цитата Сообщение от asics Посмотреть сообщение
cout чем не устраевает ?
Очевидно же что тем, что:
Цитата Сообщение от knkd Посмотреть сообщение
вывод форматной строки, с разными форматами (строка, int, double с разной точностью) превращается в простыню кода.


Добавлю, специфика такова что приходится выводить большое количество данных в текстовом виде, с размещением в колонках.
При этом для выравнивания с текстом (для человекочитаемости) приходится использовать выравнивание под разную ширину поля.
Специфика данных заставляет печатать их с различной точностью после запятой, или в экспоненциальной форме.

Использование cout представляет собой несколько экранов кода, для каждой строки, что совершенно нечитаемо.
1
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
23.12.2010, 18:12 10
ну так есть
C++
1
/t
1
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
23.12.2010, 18:32 11
Цитата Сообщение от Kill100 Посмотреть сообщение
ну так есть
Который по разному отображается в разных редакторах и во многих сбоит, при слишком разной ширине строк?
Отчёты являются технической документацией, со стандартами представления и минимизации возможности разночтения.
Кроме того работа с точностью остаётся.
Получается излишне громоздко, приходится использовать fprintf...
1
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
23.12.2010, 19:31  [ТС] 12
вот как применить
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int main(void)
{
    int n,m;
    unsigned int **a;
    int i,j;
    printf("Vvedite n->"); scanf("%d",&n);
    printf("Vvedite m->"); scanf("%d",&m);
    a=new unsigned int*[n];
    for(i=0;i<n;i++)
    {
        a[i]=new unsigned int[m];
    }
    printf("\n\nMASSIV A: \n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            a[i][j]=rand()%50-50;
            printf("%d", a[i][j]);
        }
         printf("\n");
    }
     int max(unsigned int **a);
{
     int max=a[0][0];
     for (i=0; i<n; i++) 
     {
         for (j=0; j<m; j++)
         {
     
             if (max<fabs(a[i][j]))
             { 
                 max=fabs(a[i][j]);
             }
         }
     }
return max;
}
    
}
попробывал чтото не работеет 3 ошибки вылетает
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
23.12.2010, 19:36 13
Цитата Сообщение от Steam.dll Посмотреть сообщение
попробывал чтото не работеет 3 ошибки вылетает
C++
1
2
3
4
if (max<abs(static_cast<int>(a[i][j])))
                         { 
                                 max=abs(static_cast<int>(a[i][j]));
                         }
1
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
23.12.2010, 20:24  [ТС] 14
Спасибо но это мне не понятно
static_cast<int> мы не проходили ещё и я не понимаю можно как нибудь сделать это проще
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
23.12.2010, 21:49 15
Цитата Сообщение от Steam.dll Посмотреть сообщение
Спасибо но это мне не понятно
static_cast<int> мы не проходили ещё и я не понимаю можно как нибудь сделать это проще
C++
1
2
3
4
if (max<abs((int)a[i][j]))
                         { 
                                 max=abs((int)a[i][j]);
                         }
1
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
23.12.2010, 23:49  [ТС] 16
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int main(void)
{
        int n,m;
        unsigned int **a;
        int i,j;
        printf("Vvedite n->"); scanf("%d",&n);
        printf("Vvedite m->"); scanf("%d",&m);
        a=new unsigned int*[n];
        for(i=0;i<n;i++)
        {
                a[i]=new unsigned int[m];
        }
    printf("\n\nMASSIV A: \n");
        for(i=0;i<n;i++)
        {
                for(j=0;j<m;j++)
                {
                        a[i][j]=rand()%50-50;
                        printf("%d", a[i][j]);
                }
 
         printf("\n");
        }
     printf("GOGIGOGIGOGI");
     int max(unsigned int **a);
{
    int max=a[0][0];
     for (i=0; i<n; i++) 
         {
                 for (j=0; j<m; j++)
                 {
     
                         if (max<fabs(a[i][j]))
                         { 
                                 max=fabs(a[i][j]);
                                 printf("%d", a[i][j]);
                         }
                   
                 }
                 printf("\n");
         }
return max;
}
        
}
я сделал вот так только толку нет она также масив переписывает там в задании элемент с наибольшим по модулю значением заменить на 0 он не меняет(
0
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
24.12.2010, 00:32 17
Я те кинул функцию.
Обрати внимание на слово функция.
Которая ищет максимум.
Если функции не проходили то в код проги вставь

C++
1
2
3
4
5
6
7
8
9
int max_i=0,  max_j=0;
int max=a[0][0];
for (int i=0; i<n; i++) {
for (int j=0; j<m; j++){
if (max<fabs(a[i][j])){ max=fabs(a[i][j]);  max_i=i;  max_j=j;};
};
};
 
a[max_i][max_j]=0;

А далее выводим.
1
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
24.12.2010, 10:54 18
Цитата Сообщение от Steam.dll Посмотреть сообщение
я сделал вот так только толку нет она также масив переписывает там в задании элемент с наибольшим по модулю значением заменить на 0 он не меняет(
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <conio.h>
#include <malloc.h>
 
int max(unsigned int **a, int n,int m);
 
int main(void)
{
        srand((unsigned)time(NULL));
        int n,m,maximum,i,j;;
        unsigned int **a;
        printf("Vvedite n->"); 
        scanf("%d",&n);
        printf("Vvedite m->"); 
        scanf("%d",&m);
        a=(unsigned int**)malloc(n*sizeof(unsigned int));
        for(i=0; i<n; i++)
        {
            a[i]=(unsigned int*)malloc(m*sizeof(unsigned int));
        }
        printf("\n\nMASSIV A: \n");
        for(i=0; i<n; i++)
        {
                for(j=0; j<m; j++)
                {
                        a[i][j]=rand()%50-50;
                        printf("%d  ", a[i][j]);
                }
            printf("\n");
        }
 printf("\nMax is %d\n\n",max(a,n,m));
 maximum=max(a,n,m);
 for(i=0; i<n; i++)
        {
                for(j=0; j<m; j++)
                {
                        if(a[i][j]==maximum)
                        {
                            a[i][j]=0;
                        }
                        printf("%d  ", a[i][j]);
                }
            printf("\n");
        }
 for(int i=0; i<n; i++)
 {
     free(a[i]);
 }
 free(a);
 getch();
 return 0;
}
 
int max(unsigned int **a,int n, int m)
   {
        int i,j;
        int max=a[0][0];
        for (i=0; i<n; i++) 
         {
              for (j=0; j<m; j++)
                 {
                     if (max<abs((int)a[i][j]))
                         { 
                                 max=abs(((int)a[i][j]));
                         }
                 }
          }
    return -max;
  }
1
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
25.12.2010, 11:23  [ТС] 19
огромное спасибо за помощь

Добавлено через 12 часов 10 минут
а почему
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int max(unsigned int **a,int n, int m)
   {
        int i,j;
            int max=a[0][0];
        for (i=0; i<n; i++) 
         {
              for (j=0; j<m; j++)
                 {
                     if (max<abs((int)a[i][j]))
                         { 
                                 max=abs(((int)a[i][j]));
                         }
                 }
          }
    return -max;
  }
находится в программе в конце а не внутри где сам массив и как она на него влияет
0
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 12:27 20
Цитата Сообщение от Steam.dll Посмотреть сообщение
находится в программе в конце а не внутри где сам массив и как она на него влияет
Функция может ноходится перед програмой, после програмы(тогда перед програмой нужно писать ее прототип), и внутри програмы. Просто мне так удобней, и вообже как по мне, функции внутри програмы делают код запутанным!!!!
1
25.12.2010, 12:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2010, 12:27
Помогаю со студенческими работами здесь

Динамические массивы
Создан динамический массив. Нужно добавить в заданную строку заданное количество элементов и...

Динамические массивы
Помогите сделать пожалуйста массивы a и с динамическими, чтобы не переполнять память при сортировке...

Динамические массивы
С использованием динамических массивов, вводя размер массива с клавиатуры. Используя имя массива...

Динамические массивы...
Помогите пожалуйста.... Дано матрицу размерностью N * М с произвольных многочисленных элементов....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru