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

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

Войти
Регистрация
Восстановить пароль
 
Стас Скорюков
Сообщений: n/a
#1

ошибка при составлении функции - C++

13.11.2011, 22:15. Просмотров 248. Ответов 1
Метки нет (Все метки)

Я пытаюсь создать программу, при помощи функции выделяющую из двумерного массива одномерный, который будет состоять из элементов старого, делящихся на 6, а затем считающую произведение элементов полученного массива.
Для этого составляю функции:

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
// function 5.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "stdlib.h"
 
void del(int *a, int m, int n, int *b, int k);
int pr(int *b, int k);
 
void main()
{
    int A[3][4], B[12];
    printf ("vvedite matritsu A[][]");
    for (int i=0; i<3; i++)
        for (int j=0; j<4; j++)
            scanf ("%d",&A[i][j]);
    for (int i=0; i<3; i++)
    {
        for (int j=0; j<4; j++)
            printf ("%d ",A[i][j]);
        printf ("\n");
    }
    del(&A[0][0],3,4,&B[0],12);
    for (int p = 0; p<12; p++)
    printf ("%d ",B[p]);
    int s=pr(&B[0],12);
    printf ("\n\n\n%d ",s);
    getch();
}
void del(int *a, int m, int n, int *b, int k)
{ 
    int i,j,p;
    for ( i=0;i<m;i++ )
        {
            for ( j=0;j<n;j++)
                if (*(a+i*n+j)%6==0)
                {
                    for (p=0;p<k;p++)
                    *(b + p)=*(a+i*n+j);
                }
        }
}
int pr(int *b, int k)
{
    int s=1;
    for (int p=0;p<k;p++)
    s=s*(*(b+p));
    return s;
}
Но получаю: если 2-мерный имеет вид 1 2 3 4 5 6 7 8 9 10 11 12, то 1-мерный имеет вид 12 12 12 12 12 12 12 12 12 12 12 12.
Подскажите пожалуйста, как можно прийти к желаемому результату. Буду очень благодарен.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 22:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ошибка при составлении функции (C++):

При составлении палиндрома последняя буква переходит на 1 место - C++
последняя буква переходит на 1 место #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string&gt; #include&lt;conio.h&gt; ...

Ошибка при вызове функции - C++
Ошибка в строке 90, при пошаговом выполнении она появляется при вызове функции, до захода в нее, хотя список сформирован правильно, т.к. до...

Ошибка при вызове функции - C++
Добрый день! Есть функция по расчету детерминанта int _det(int size,double **arr,double &amp;det) { int i,j,k; det=1; double b; ...

Ошибка при вызове функции - C++
В функции NewWords вызывается функция correct,при отладке я не могу войти в эту функцию,к тому же потом не выводится элементы объекта...

При обработке функции возникает ошибка - C++
При компиляции возникает ошибка: результатом вычисления фрагмента не является функция, принимающая 1 аргументов Вот код программы: ...

Ошибка при работе функции в классе - C++
В классе есть функция - double AM(void); - она должна складывать поэлементно массивы i и q, которые я сам создаю. Но, судя по результатам,...

1
amor1k
Студент
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
14.11.2011, 01:54 #2
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
#include "conio.h"
#include "stdlib.h"
#include <stdio.h>
int del(int *a, int m, int n, int *b);
int pr(int *b, int k);
 
void main()
{
    int A[3][4], B[12];
    printf ("vvedite matritsu A[][]");
    for (int i=0; i<3; i++)
        for (int j=0; j<4; j++)
            scanf ("%d",&A[i][j]);
    for (int i=0; i<3; i++)
    {
        for (int j=0; j<4; j++)
            printf ("%d ",A[i][j]);
        printf ("\n");
    }
    int k = del(&A[0][0],3,4,&B[0]);
    for (int p = 0; p<k; p++)
        printf ("%d ",B[p]);
    int s=pr(&B[0],k);
    printf ("\n\n\n%d ",s);
    getch();
}
int del(int *a, int m, int n, int *b)
{ 
    int i,j,p;
    int c = 0;
    for ( i=0;i<m;i++ )
    {
        for ( j=0;j<n;j++)
            if (*(a+i*n+j)%6==0)
            {
                *(b + c)=*(a+i*n+j);
                c++;
            }
    }
    return c;
}
int pr(int *b, int k)
{
    int s=1;
    for (int p=0;p<k;p++)
        s=s*(*(b+p));
    return s;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2011, 01:54
Привет! Вот еще темы с ответами:

Ошибка при передаче результата функции - C++
Оператор + возвращает правильное значение (по крайней мере в конце его тела я вывожу полученный список, и все верно, он возвращает его по...

GCC ошибка при вызове функции - C++
Здравствуйте. Проблема в следующем: при вызове функции sub из тела add выдается ошибка. http://puu.sh/3bFZj.png Путем экспериментов...

Ошибка при использовании дружественной функции - C++
Доброго времени суток! Не могу понять, в строках 17 и 20 пишет, что член hate, объявленный в строке 8 недоступен Подскажите, в чем...

Ошибка при возвращении ссылки из функции - C++
Когда функция возвращает ссылку, то ее можно использовать с левой стороны от знака &quot;=&quot;. Только не пойму почему не работает ...


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

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

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