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

Процедуры и функции: Рассчитать сумму и произведение значений элементов произвольной строки двухмерного массива. - C++

Восстановить пароль Регистрация
 
artemka9993
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 7
23.03.2013, 00:59     Процедуры и функции: Рассчитать сумму и произведение значений элементов произвольной строки двухмерного массива. #1
Ввести двумерный массив размерностью 5х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
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
#include <stdio.h>
#include <math.h>
void vvod(int A[5][6], int n, int k);
void vivod(int A[5][6], int n, int k);
void sumproiz(int A[5][6], int a, int k, int *sum, int *p);
void proizvedenie(int A[5][6], int n, int x, int z);
void vyvod(int A[5][6], int n, int k, int sum, int p);
void main ()
{
   int A[5][6], sum=0, z, a, x;
   int p=1;
   vvod(A, 5, 6);
   vivod(A,5,6);
   printf("Vvedite nomer ctpoku: ");
   scanf("%d", &a);
   printf("Vvedite nomer ctolbca: ");
   scanf("%d", &x);
   sumproiz(A, a, 6, &sum, &p);
   printf("Vvedite mnogitel: ");
   scanf("%d", &z);
   printf("Massiv s obnovlennym stolbcom: \n");
   proizvedenie(A, 5, x, z);
   vyvod(A, 5, 6, sum, p);
 
   getchar ();
   getchar ();
 
 
}
 
 
void vvod(int A[5][6], int n, int k)
{
   int i, j;
   printf("Vvedite elementy massiva\n");
   for (i = 0; i < n; i++)
   {
      for (j = 0; j < k; j++)
     scanf("%3d", &A[i][j]);
   };
 
}
void vivod(int A[5][6], int n, int k)
{int i,j;
printf ("Na4alnuy massiv: \n");
for (i = 0; i < n; i++)
   {
      for (j = 0; j < k; j++)
         
     printf("%5d", A[i][j]);
      printf("\n");};
   }
 
void sumproiz(int A[5][6], int a, int k, int *sum, int *p)
{
   int j;
   for (j = 0; j < k; j++)
   {
      (int)*sum+=A[a-1][j];
   }
   *p*=A[a-1][j];
}
 
void proizvedenie(int A[5][6], int n, int x, int z)
{
   int i;
   for (i = 0; i < n; i++)
      A[i][x-1] = z*A[i][x-1];
}
 
void vyvod(int A[5][6], int n, int k, int sum, int p)
{
int i,j;
for(i=0;i<n;i++)
{for(j=0;j<k;j++)
printf("%5d",A[i][j]);
printf("\n");
};
   printf("Summa = %d\n", sum);
   printf("Proizvedenie v ctroke = %d\n", p);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 00:59     Процедуры и функции: Рассчитать сумму и произведение значений элементов произвольной строки двухмерного массива.
Посмотрите здесь:

В каждой строке двухмерного массива определить наибольший элемент и подсчитать сумму этих максимальных элементов C++
Процедуры и Функции. Найти сумму элементов массива Т, имеющих четные порядковые номера C++
C++ Задача на указатели (Рассчитать в одной функции сумму и произведение значений элементов произвольной строки двухмерного массива)
Указатели, функции (сумма и произведение значений элементов, умножение элементов произвольного столбца) C++
Найти среднее арифметическое элементов для каждой строки заданного двухмерного массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
artemka9993
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 7
23.03.2013, 01:00  [ТС]     Процедуры и функции: Рассчитать сумму и произведение значений элементов произвольной строки двухмерного массива. #2
P7. Ввести двумерный массив размерностью 5х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
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
#include <stdio.h>
#include <math.h>
void vvod(int A[5][6], int n, int k);
void vivod(int A[5][6], int n, int k);
void sumproiz(int A[5][6], int a, int k, int *sum, int *p);
void proizvedenie(int A[5][6], int n, int x, int z);
void vyvod(int A[5][6], int n, int k, int sum, int p);
void main ()
{
   int A[5][6], sum=0, z, a, x;
   int p=1;
   vvod(A, 5, 6);
   vivod(A,5,6);
   printf("Vvedite nomer ctpoku: ");
   scanf("%d", &a);
   printf("Vvedite nomer ctolbca: ");
   scanf("%d", &x);
   sumproiz(A, a, 6, &sum, &p);
   printf("Vvedite mnogitel: ");
   scanf("%d", &z);
   printf("Massiv s obnovlennym stolbcom: \n");
   proizvedenie(A, 5, x, z);
   vyvod(A, 5, 6, sum, p);
 
   getchar ();
   getchar ();
 
 
}
 
 
void vvod(int A[5][6], int n, int k)
{
   int i, j;
   printf("Vvedite elementy massiva\n");
   for (i = 0; i < n; i++)
   {
      for (j = 0; j < k; j++)
     scanf("%3d", &A[i][j]);
   };
 
}
void vivod(int A[5][6], int n, int k)
{int i,j;
printf ("Na4alnuy massiv: \n");
for (i = 0; i < n; i++)
   {
      for (j = 0; j < k; j++)
         
     printf("%5d", A[i][j]);
      printf("\n");};
   }
 
void sumproiz(int A[5][6], int a, int k, int *sum, int *p)
{
   int j;
   for (j = 0; j < k; j++)
   {
      (int)*sum+=A[a-1][j];
   }
   *p*=A[a-1][j];
}
 
void proizvedenie(int A[5][6], int n, int x, int z)
{
   int i;
   for (i = 0; i < n; i++)
      A[i][x-1] = z*A[i][x-1];
}
 
void vyvod(int A[5][6], int n, int k, int sum, int p)
{
int i,j;
for(i=0;i<n;i++)
{for(j=0;j<k;j++)
printf("%5d",A[i][j]);
printf("\n");
};
   printf("Summa = %d\n", sum);
   printf("Proizvedenie v ctroke = %d\n", p);
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2013, 04:21     Процедуры и функции: Рассчитать сумму и произведение значений элементов произвольной строки двухмерного массива. #3
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
#include <stdio.h>
#include <math.h>
 
const int N = 5;
const int M = 6;
 
void vvod(int A[][M]);
void vivod(int A[][M]);
void sumproiz(int A[][M], int a);
void proizvedenie(int A[][M], int x, int z);
 
 
void main ()
{
   int A[N][M], z, a, x;
  
   vvod(A);
   
   printf ("Na4alnuy massiv: \n\n");
   vivod(A);
   
   printf("\nVvedite nomer ctpoku: ");
   scanf("%d", &a);
   
   sumproiz(A, a);
 
   printf("\nVvedite nomer ctolbca: ");
   scanf("%d", &x);
   printf("Vvedite mnogitel: ");
   scanf("%d", &z);
   
   proizvedenie(A, x, z);
 
   printf("\nMassiv s obnovlennym stolbcom: \n\n");
   vivod(A);
 
   getchar ();
   getchar ();
}
 
 
void vvod(int A[][M])
{
   int i, j;
   printf("Vvedite elementy massiva\n");
   for (i = 0; i < N; i++)
   {
      for (j = 0; j < M; j++)
            scanf("%3d", &A[i][j]);
   };
 
}
 
void vivod(int A[][M])
{
int i, j;
for (i = 0; i < N; i++)
   {
      for (j = 0; j < M; j++)
            printf("%5d", A[i][j]);
      printf("\n");};
   }
 
void sumproiz(int A[][M], int a)
{
   int j, sum = 0, p = 1;
   for (j = 0; j < M; j++)
   {
      sum += A[a-1][j];
      p   *= A[a-1][j];
   }
   printf("\nSumma v ctroke        = %d\n", sum);
   printf("Proizvedenie v ctroke = %d\n", p);
}
 
void proizvedenie(int A[][M], int x, int z)
{
   int i;
   for (i = 0; i < N; i++)
      A[i][x-1] *= z;
}
kostya-vrn
10 / 10 / 4
Регистрация: 16.03.2013
Сообщений: 30
23.03.2013, 10:26     Процедуры и функции: Рассчитать сумму и произведение значений элементов произвольной строки двухмерного массива. #4
Функция sumproiz написана не правильно, нужно произведение внести в цикл, вот так
C++
1
2
3
4
5
6
7
8
9
void sumproiz(int A[5][6], int a, int k, int *sum, int *p)
{
   int j;
   for (j = 0; j < k; j++)
   {
      (int)*sum+=A[a-1][j];
      *p*=A[a-1][j];
   }
}
Yandex
Объявления
23.03.2013, 10:26     Процедуры и функции: Рассчитать сумму и произведение значений элементов произвольной строки двухмерного массива.
Ответ Создать тему
Опции темы

Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru