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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
#1

Динамические массивы - C++

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

помогите выполнить задание
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]);
        
            
            
        }
    
}
как энтеграл представить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2010, 15:17     Динамические массивы
Посмотрите здесь:

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

Динамические массивы - C++
Сдраствуйте надо написать програму на тему Динамические массивы Написать программу, использованием динамических массивов, вводя размер...

Динамические массивы - C++
1. Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать 2. Выполнить указанное в варианте...

Динамические массивы - C++
пишу функции по сложению умножению делению и вычитанию полиномов void sub(){ int x,y; cout&lt;&lt;&quot;vvod stepeni A(x): &quot;; ...

Динамические массивы - C++
Помогите пожалуйста решить. Только матрицы надо обязательно через динамические массивы задавать( я ничего в этом не понимаю(

Динамические массивы - C++
Вот еще с этой задачей помогите пожааалуйста, очень надо 1. Заданы два массива А(N) и В(M). В каждом из массивов найти наименьшее...

Динамические массивы - C++
Объясните пожалуйста что такое динамические массивы. Это массивы с не константным количеством элементов? Если так, то как их объявлять?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Steam.dll
3 / 3 / 0
Регистрация: 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 он не меняет(
Kill100
401 / 267 / 37
Регистрация: 11.12.2010
Сообщений: 1,134
Завершенные тесты: 1
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;

А далее выводим.
MILAN
885 / 779 / 86
Регистрация: 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;
  }
Steam.dll
3 / 3 / 0
Регистрация: 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;
  }
находится в программе в конце а не внутри где сам массив и как она на него влияет
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 12:27     Динамические массивы #20
Цитата Сообщение от Steam.dll Посмотреть сообщение
находится в программе в конце а не внутри где сам массив и как она на него влияет
Функция может ноходится перед програмой, после програмы(тогда перед програмой нужно писать ее прототип), и внутри програмы. Просто мне так удобней, и вообже как по мне, функции внутри програмы делают код запутанным!!!!
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
25.12.2010, 12:42  [ТС]     Динамические массивы #21
а прототип функции это
C++
1
int max(unsigned int **a, int n,int m);
написанное перед программой
чем отличается int main(void) ОТ VOID MAIN
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 12:52     Динамические массивы #22
Цитата Сообщение от Steam.dll Посмотреть сообщение
а прототип функции это
Код C++1 int max(unsigned int **a, int n,int m);
написанное перед программой
ДА, совершенно верно!!!

Добавлено через 2 минуты
Цитата Сообщение от Steam.dll Посмотреть сообщение
чем отличается int main(void) ОТ VOID MAIN
Точно утверждать не буду, но помойму ничем!!!!
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
25.12.2010, 14:09  [ТС]     Динамические массивы #23
спасибо

Добавлено через 23 минуты
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int factorial2(int n)
 
int main(void)
{
        
        
        int r,f;
        unsigned int *b;
        printf(" Vvedite rasmer>"); scanf("%d", &r);
        printf("\nmassiv A\n");
        b=new unsigned int*[r];
        f=factorial2;
        for(i=0;i<r;i++)
        {
            b[i]=i/f;
            printf("%d", b[i]);
        }
    
}
 
int factorial2(int n)
{
    for (int i = n - 2; i >= 1; n *= i, i -= 2);
 
    return n == 0 ? 1 : n; 
}
вот функция вроде всё нормально а с самим int main(void) пишет error C2146: syntax error : missing ';' before identifier 'main' вроде тока с запятой там не ставится некогда
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.12.2010, 14:11     Динамические массивы #24
Steam.dll, 5 строка должна выглядить так
C++
1
int factorial2(int n);
, так-как это прототип, после него надо ставить точку с запятой.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 14:12     Динамические массивы #25
Steam.dll, точку с запетой надо ставить после прототипа

C
1
int factorial2(int n);
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
25.12.2010, 22:42  [ТС]     Динамические массивы #26
теперь 5 ошибок)
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int factorial2(int n);
 
int main(void)
{
        int r,f;
        unsigned int *b;
        printf(" Vvedite rasmer>"); scanf("%d", &r);
        printf("\nmassiv A\n");
        b=new unsigned int [r];
        f= factorial2(int n);
        for(int j=0;j<r;j++)
        {
            b[j]=j/f;
            printf("%d", b[j]);
        }
        for(j=0;j<r;j++)
        {
        delete(b[j]);
        
        }
        
    
}
 
int factorial2(int n);
{
    for (int i = n - 2; i >= 1; n *= i, i -= 2);
 
    return n == 0 ? 1 : n; 
}
вроде поставил всё . может функцию не правильно вписал чтоб она в самой прграме работала
мне надо b[j]=j/f; f факториал то есть j на факториал разделить
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.12.2010, 22:48     Динамические массивы #27
Steam.dll,
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int factorial2(int n);
 
int main(void)
{
            int r,f, n = 5;
                int *b;
                printf(" Vvedite rasmer>"); scanf("%d", &r);
                printf("\nmassiv A\n");
                b=(int*)malloc(sizeof(int)*r);
                f= factorial2(n);
                for(int j=0;j<r;j++)
                {
                        b[j]=j/f;
                        printf("%d", b[j]);
        }
                free(b);
 
 
}
 
int factorial2(int n)
{
    for (int i = n - 2; i >= 1; n *= i, i -= 2);
 
    return n == 0 ? 1 : n;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 23:00     Динамические массивы
Еще ссылки по теме:

Динамические массивы - C++
помогите решить плз Составить программу, которая удаляет из списка L за каждым вхождением элемента Е один элемент, если таковой имеется и...

Динамические массивы - C++
Суть задания такова. Создается динамический массив А, заполняется элементами. Затем создается массив B, куда записываются все элементы...

динамические массивы - C++
помогите разобраться с динамическими массивами . Надо составить программу которая: Изменяла порядок следования элементов массива на...

Динамические массивы - C++
Дана целочисленная матрица размером N. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк. Нужно...

Динамические массивы - C++
1. Заданы два массива А(N) и В(M). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий...


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

Или воспользуйтесь поиском по форуму:
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
26.12.2010, 23:00  [ТС]     Динамические массивы #28
Спасибо

Добавлено через 22 часа 27 минут
а почему всё время 0 получается
Yandex
Объявления
26.12.2010, 23:00     Динамические массивы
Ответ Создать тему
Опции темы

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