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

Вычислить произведение элементов каждой диагонали массива - C++

Восстановить пароль Регистрация
 
Rapchinka
0 / 0 / 0
Регистрация: 08.03.2011
Сообщений: 5
22.03.2011, 18:21     Вычислить произведение элементов каждой диагонали массива #1
Инициализировать нецелочисленный массив 5х5 данными от -3 до -1;
Вычислить произведение элементов каждой диагонали массива.
Оформить вычисления в виде функции с параметрами: исходный массив, размерность массива, результирующий массив; тип возвращаемого значения – int.
Записать полученные значения в файл в виде строки.
Считать из файла второе записанное значение и вывести его на экран.
есть заготовка а нужно добавить:
Оформить вычисления в виде функции с параметрами: исходный массив, размерность массива, результирующий массив; тип возвращаемого значения – int.
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <ctime.h>
#include <cstdlib>
 
#pragma hdrstop
//---------------------------------------------------------------------------
 
#pragma argsused
 
using namespace std;
int main(int argc, char* argv[])
{
FILE *fp;
 
 
srand(time(0));
const int n=5;
double a[n][n];
int i,j;
randomize();
// ?????????????
for(i=0;i<n;i++)
        for(j=0;j<n;j++)
                a[i][j]=(rand()%3)*(-1)-1;
 
// ????? ?? ????? ??????????????????? ???????
for(i=0;i<n;i++) {
        for(j=0;j<n;j++) {
                cout<<a[i][j]<<" ";
 
 
 }
 
 cout<<"\n";
 }
 system("pause");
    if ((fp = fopen("TESTFILE.txt", "wt"))== NULL)
   {
      printf( "Cannot open output file.\n");
      system("pause");
      return 1;
   }
 
 
// ??????????
double proiz1=1;
for(i=0;i<n;i++)
        for(i=0;i<n;i++)
        proiz1*=a[i][i];//??????? ?????????
 
double proiz2=1;
for(i=n;i>=0;i--)
        for(i=n-1;i>=0;i--)
        proiz2*=a[i][i];//???????? ?????????
       fprintf(fp, "%lf %lf", proiz1,proiz2  );
 
cout<<proiz1<<" "<<proiz2<<endl;
            fclose(fp);
 
system("pause");
return 0;
}
//---------------------------------------------------------------------------




Помогите!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2011, 18:21     Вычислить произведение элементов каждой диагонали массива
Посмотрите здесь:

C++ Вычислить произведение положительных элементов находящиеся под главной диагонали
C++ Вычислить произведение положительных и отрицательных элементов каждой строки
Даны три массива A[7][7], B[7][7], C[7][7]. Найти произведение ненулевых элементов, расположенных ниже главной диагонали. C++
C++ В одномерном массиве, вычислить: а) количество элементов массива б) произведение элементов массива в) От - к +
C++ Найти произведение элементов главной диагонали и сумму элементов побочной диагонали
Дан двумерный массив. Упорядочить элементы каждой строки массива; сформировать одномерный массив из элементов главной диагонали упорядоченного массива C++
Определить минимальный элемент каждой строки матрицы и найти произведение положительных элементов, расположенных на ее главной диагонали. C++
C++ Найти произведение элементов, расположенных на главной диагонали массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mycola
22 / 12 / 13
Регистрация: 23.03.2013
Сообщений: 157
02.01.2015, 00:10     Вычислить произведение элементов каждой диагонали массива #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
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 "iostream"
#include "fstream"
#define N (5)
using namespace std;
 
ofstream file_write;
ifstream file_read;
 
void Print_Test(float* Arr, unsigned short K);
 
void Array_Init(float** A)
{
    for(register unsigned short i = 0; i<N; i++)
    {
        A[i] = new float[N];
        for(register unsigned short j = 0; j<N; j++)
        {
            A[i][j] = 2;
            //A[i][j] = -(rand()%2000+1000)/1000;
        }
    }
}
 
int Array_Process(float** A, int SizE)
{
    int Number, temporary =0;
 
    if((SizE==1)||(SizE==2))
        Number = N;
    else
        Number = 2*(N*2-1);
 
    float* Mux = new float[Number];
 
    while(temporary<Number)
    {
        Mux[temporary] = 1;
        temporary++;
    }
 
    for(register unsigned short i = 0; i<SizE; i++)
    {
 
 
        for(unsigned short j = 0; j<SizE; j++)
        {
            if(j<=i)
                Mux[i-j] *= A[i][j];
            if(j>i)
                Mux[j-i+SizE-1] *= A[i][j];
            if(j<=SizE-i-1)
                Mux[2*SizE-1+i] *= A[i][j];
            if(j>SizE-i-1)
                Mux[3*SizE-2+i] *= A[i][j];
        }
    }
    Print_Test(Mux,Number);
    return true;
}
 
void Print_Test(float* Arr, unsigned short K)
{
    int swa;
    file_write.open("rezult.txt");
    for(register unsigned short i = 0; i< K; i++)
        file_write<<Arr[i]<<endl;
    file_write.close();
    file_read.open("rezult.txt");
    file_read>>swa;
    file_read>>swa;
    cout<<"Второе значение: "<<swa<<endl;
}
 
int main()
{
    float** A = new float*[N];
    Array_Init(A);
    Array_Process(A,N);
    delete[] A;
    return 0;
}
Добавлено через 20 секунд
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 "iostream"
#include "fstream"
#define N (5)
using namespace std;
 
ofstream file_write;
ifstream file_read;
 
void Print_Test(float* Arr, unsigned short K);
 
void Array_Init(float** A)
{
    for(register unsigned short i = 0; i<N; i++)
    {
        A[i] = new float[N];
        for(register unsigned short j = 0; j<N; j++)
        {
            A[i][j] = 2;
            //A[i][j] = -(rand()%2000+1000)/1000;
        }
    }
}
 
int Array_Process(float** A, int SizE)
{
    int Number, temporary =0;
 
    if((SizE==1)||(SizE==2))
        Number = N;
    else
        Number = 2*(N*2-1);
 
    float* Mux = new float[Number];
 
    while(temporary<Number)
    {
        Mux[temporary] = 1;
        temporary++;
    }
 
    for(register unsigned short i = 0; i<SizE; i++)
    {
 
 
        for(unsigned short j = 0; j<SizE; j++)
        {
            if(j<=i)
                Mux[i-j] *= A[i][j];
            if(j>i)
                Mux[j-i+SizE-1] *= A[i][j];
            if(j<=SizE-i-1)
                Mux[2*SizE-1+i] *= A[i][j];
            if(j>SizE-i-1)
                Mux[3*SizE-2+i] *= A[i][j];
        }
    }
    Print_Test(Mux,Number);
    return true;
}
 
void Print_Test(float* Arr, unsigned short K)
{
    int swa;
    file_write.open("rezult.txt");
    for(register unsigned short i = 0; i< K; i++)
        file_write<<Arr[i]<<endl;
    file_write.close();
    file_read.open("rezult.txt");
    file_read>>swa;
    file_read>>swa;
    cout<<"Второе значение: "<<swa<<endl;
}
 
int main()
{
    float** A = new float*[N];
    Array_Init(A);
    Array_Process(A,N);
    delete[] A;
    return 0;
}
Yandex
Объявления
02.01.2015, 00:10     Вычислить произведение элементов каждой диагонали массива
Ответ Создать тему
Опции темы

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