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

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

Войти
Регистрация
Восстановить пароль
 
Rapchinka
0 / 0 / 0
Регистрация: 08.03.2011
Сообщений: 5
#1

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

22.03.2011, 18:21. Просмотров 727. Ответов 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;
}
//---------------------------------------------------------------------------




Помогите!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2011, 18:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить произведение элементов каждой диагонали массива (C++):

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

Определить минимальный элемент каждой строки матрицы и найти произведение положительных элементов, расположенных на ее главной диагонали. - C++
1. Определить минимальный элемент каждой строки матрицы. Напечатать его значение и индексы. 2. Найти произведение положительных элементов...

Вычислить сумму и произведение элементов главной диагонали матрицы А[3,3] - C++
Помогите решить задачи на С++,сложновато 1. Вычислить сумму и произведение элементов главной диагонали матрицы А. Матрица вводится с...

Вычислить произведение положительных и отрицательных элементов каждой строки - C++
Здравствуйте, Уважаемые форумчане ! :) Вот такое у меня задание значит: Дана матрица. Вычислить произведение положительных и...

Вычислить произведение положительных элементов находящиеся под главной диагонали - C++
дана квадратная матрица с реальными цислами C элементы которой прочитаются с файла. 1 Вычислить произведение положительных элементов...

Вычислить произведение отрицательных элементов матрицы А(5,5), расположенных ниже главной диагонали - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;conio.h&gt; int...

1
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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2015, 00:10
Привет! Вот еще темы с ответами:

Найти произведение элементов, расположенных на главной диагонали массива - C++
Задан двухмерный массив целых чисел A размером N на M. Найти произведение элементов, расположенных на главной диагонали.

Вычислить произведение положительных элементов массива, сумму элементов массива, расположенных до минимального - C++
С одномерным массивом, состоящим из n вещественных элементов, произвести следующие операции: 1) вычислить произведение положительных...

Определить для каждой строки массива произведение элементов - C++
Ребята, не знаю почему не работает данная программа.Помогите,пожалуйста. Определить для каждой строки массива произведение элементов....

В одномерном массиве, вычислить: а) количество элементов массива б) произведение элементов массива в) От - к + - C++
Помогите пожалуйста!.. Вводить из клавиатуры массивы и обрабатывать их, пока на запрос “Хотите продолжать работу дальше (да, нет) ?”...


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

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

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