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

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

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

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

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

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

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

динамические массивы - C++
Здравствуйте, Посмотрите ,пожалуйста,задачу! ...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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 он не меняет(
0
Kill100
405 / 271 / 37
Регистрация: 11.12.2010
Сообщений: 1,155
Завершенные тесты: 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;

А далее выводим.
1
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;
  }
1
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;
  }
находится в программе в конце а не внутри где сам массив и как она на него влияет
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 12:27 #20
Цитата Сообщение от Steam.dll Посмотреть сообщение
находится в программе в конце а не внутри где сам массив и как она на него влияет
Функция может ноходится перед програмой, после програмы(тогда перед програмой нужно писать ее прототип), и внутри програмы. Просто мне так удобней, и вообже как по мне, функции внутри програмы делают код запутанным!!!!
1
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
0
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
Точно утверждать не буду, но помойму ничем!!!!
1
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' вроде тока с запятой там не ставится некогда
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.12.2010, 14:11 #24
Steam.dll, 5 строка должна выглядить так
C++
1
int factorial2(int n);
, так-как это прототип, после него надо ставить точку с запятой.
1
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 14:12 #25
Steam.dll, точку с запетой надо ставить после прототипа

C
1
int factorial2(int n);
1
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 на факториал разделить
0
asics
Freelance
Эксперт С++
2847 / 1784 / 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;
}
1
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
26.12.2010, 23:00  [ТС] #28
Спасибо

Добавлено через 22 часа 27 минут
а почему всё время 0 получается
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 23:00
Привет! Вот еще темы с ответами:

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

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

Динамические массивы - C++
Подскажите, как найти в одномерном динамическом массиве номер первого элемента, на котором произошла смена знака?(язык Си)

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.12.2010, 23:00
Ответ Создать тему
Опции темы

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