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

Умножение 2-ух массивов поэлементно - C++

Восстановить пароль Регистрация
 
Camarro
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 26
05.04.2012, 05:38     Умножение 2-ух массивов поэлементно #1
Написать функцию, которая умножает поэлементно 2 массива. Параметрами функции должны быть оба массива и массив, в который записывается результат.

Помогите! Мне в голову уже совсем ниче не приходит, не люблю функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
05.04.2012, 05:58     Умножение 2-ух массивов поэлементно #2
C++
1
2
3
4
5
void mult(int in1[], int in2[], int out[], int count)
{
    for (int i = 0; i < count; ++i)
        out[i] = in1[i] * in2[i];
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
05.04.2012, 09:29     Умножение 2-ух массивов поэлементно #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <iterator>
 
int main()
{
   std::vector<int> vec1 = {1,2,3,4,5,6};
   std::vector<int> vec2 = vec1;
   std::vector<int> result;
   std::transform(vec1.begin(), vec1.end(), vec2.begin(), std::back_inserter(result), [](const int f, const int s) { return f * s; });
   std::copy(result.begin(), result.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
http://liveworkspace.org/code/5c2eac...6b14abe25c921e
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.04.2012, 09:42     Умножение 2-ух массивов поэлементно #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include <numeric>
#include <iterator>
 
int main()
{
    std::vector< int > a = { 1, 2, 3 };
    std::vector< int > b = { 4, 5, 6 };
    std::vector< int > res;
    
    std::inner_product( a.begin(), a.end(), b.begin(), 0,
    [&]( int init, int x )
    {
        res.push_back(x);
        return init;
    }, std::multiplies< int > () );
    
    std::copy( res.begin(), res.end(), 
        std::ostream_iterator< int > (std::cout, " ") );
}
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
05.04.2012, 14:16     Умножение 2-ух массивов поэлементно #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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//#include "stdafx.h"//ГіГЎГ°Г*ГІГј "//" åñëè Гў âèäæóГ*Г« Г§Г*ГЇГіГ±ГЄГ*ГІГј(Г°Г*çêîììåГ*òèðîâГ*ГІГј)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int main()
{
   int n,i,m;
   while(!fflush(stdin)&&printf("Vvedite razmernost massiva A: ")&&!scanf("%i",&n));
   int *A=(int*)malloc(n*sizeof(int));
   printf("\nVvedite elementy massiva A\n\n");
   for(i=0;i<n;i++)
   {
                      while(!fflush(stdin)&&printf("A[%d] = ",i+1)&&!scanf("%i",&A[i]));
   }
   while(!fflush(stdin)&&printf("\nVvedite razmernost massiva B: ")&&!scanf("%i",&m));
   int *B=(int*)malloc(m*sizeof(int));
   int *C=(int*)malloc((m+n)*sizeof(int));
   printf("\nVvedite elementy massiva B\n\n");
   for(i=0;i<m;i++)
   {
                      while(!fflush(stdin)&&printf("B[%d] = ",i+1)&&!scanf("%i",&B[i]));
   }
   system("cls");//Г·ГЁГ±ГІГЁГ¬ ГЅГЄГ°Г*Г*
   printf("Massiv A: ");
   for(i=0;i<n;i++)
   {
                    printf("%d ",A[i]);
   }
   printf("\nMassiv B: ");
   for(i=0;i<m;i++)
   {
                    printf("%d ",B[i]);
   }
   printf("\nMassiv C: ");
   if(m<n)
   {
                    for(i=0;i<m;i++)
                    {
                                       C[i]=A[i]*B[i];
                                       printf("%d ",C[i]);
                    } 
   }
   else
   {
       for(i=0;i<n;i++)
                    {
                                       C[i]=A[i]*B[i];
                                       printf("%d ",C[i]);
                    }
   }
   free(A);
   free(B);
   free(С);
   getch();
   return 0;
}
Добавлено через 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
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
//#include "stdafx.h"//ГіГЎГ°Г*ГІГј "//" åñëè Гў âèäæóГ*Г« Г§Г*ГЇГіГ±ГЄГ*ГІГј(Г°Г*çêîììåГ*òèðîâГ*ГІГј)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
void proiz(int *A,int *B,int n,int m,int i,int *C)
{
printf("\nMassiv C: ");
   if(m<n)
   {
                    for(i=0;i<m;i++)
                    {
                                       C[i]=A[i]*B[i];
                                       printf("%d ",C[i]);
                    } 
   }
   else
   {
       for(i=0;i<n;i++)
                    {
                                       C[i]=A[i]*B[i];
                                       printf("%d ",C[i]);
                    }
   }    
   return; 
}
 
int main()
{
   int n,i,m;
   while(!fflush(stdin)&&printf("Vvedite razmernost massiva A = ")&&!scanf("%i",&n));
   int *A=(int*)malloc(n*sizeof(int));
   printf("\nVvedite elementy massiva A\n\n");
   for(i=0;i<n;i++)
   {
                      while(!fflush(stdin)&&printf("A[%d] = ",i+1)&&!scanf("%i",&A[i]));
   }
   while(!fflush(stdin)&&printf("\nVvedite razmernost massiva B = ")&&!scanf("%i",&m));
   int *B=(int*)malloc(m*sizeof(int));
   int *C=(int*)malloc((m+n)*sizeof(int));
   printf("\nVvedite elementy massiva B\n\n");
   for(i=0;i<m;i++)
   {
                      while(!fflush(stdin)&&printf("B[%d] = ",i+1)&&!scanf("%i",&B[i]));
   }
   system("cls");//Г·ГЁГ±ГІГЁГ¬ ГЅГЄГ°Г*Г*
   printf("Massiv A: ");
   for(i=0;i<n;i++)
   {
                    printf("%d ",A[i]);
   }
   printf("\nMassiv B: ");
   for(i=0;i<m;i++)
   {
                    printf("%d ",B[i]);
   }
   proiz(A,B,n,m,i,C);
   free(A);
   free(B);
   free(C);
   getch();
   return 0;
}
Yandex
Объявления
05.04.2012, 14:16     Умножение 2-ух массивов поэлементно
Ответ Создать тему
Опции темы

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