0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
1

Найти произведение позитивных элементов главной диагонали матрицы

09.06.2010, 23:03. Показов 1383. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Итак, что мы имеем:
задание 1
В матрице А(6,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
#include <iostream.h>
 
unsigned long Dobutok = 1, Summa = 0;
int _tmain(int argc, _TCHAR* argv[])
{
    int A [ 6 ][ 6 ] = {
        { 6, -7, -3, 0, 5, -1 },
        { 5, -1,  4, 3, 3, -9 },
        { 1, -4, -2, 6, 4,  3 },
        { 0, 12, -2, 3, 1, -7 },
        { 9,  5, -3, 3, 5,  3 },
        { 3, -2,  4,-1, 8, -4 }
    };
 
    SetConsoleOutputCP(1252);
 
    cout << "Matrix mae vyglyad\n";
    for ( int i = 0; i < 6; i++ ) {
        for ( int j = 0; j < 6; j++ )
            cout << A [ i ][ j ] << '\t'; 
        cout << endl << endl << endl << endl ;
    }
 
 
    for ( int i = 0; i < 6; i++ )
        if ( A [ i ][ i ] > 0 ) Dobutok = Dobutok * A [ i ][ i ];
 
    cout << "\nDobutok dodatnih elementiv golovnoi diagonali = " << Dobutok;
 
 
    cout << "\nSyma elementiv, nyjchih za pobichny diagonal = ";
    for ( int j = 5; j > 0; j-- )
        for ( int i = 5; i > ( 5 - j ); i-- )
            { Summa = Summa + A [ i ] [ j ];
                cout << A [ i ] [ j ] << '+';
            };
    cout << "\b = " << Summa;
 
    return 0;
}
в строчке unsigned long Dobutok = 1, Summa = 0;
int _tmain(int argc, _TCHAR*(вот сдесь) argv[])
пишет ") expected".Вопрос как исправить эту ошибку?

2е задание
Найти целые числа-палиндроми из интервала [М, N], которые при сводке в квадрат также дают палиндроми (222 = 484). Палиндром - это сочетание символов, которые читаются одинаково в прямом и обратном направлениях.

Моя программа

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
#include <iostream.h>
using namespace std;
 
bool IsPalindrome( unsigned long );
int _tmain(int argc, _TCHAR* argv[])
{
    unsigned int M, N;
    unsigned long b;
 
    cout << "Please input left M value [integer expected]: ";
    cin >> M;
    cout << "Please input right M value [integer expected]: ";
    cin >> N;
 
    for ( unsigned int a = M; a <= N; a++ ) {
        b = a * a;
        if ( IsPalindrome( a ) && IsPalindrome( b ) )
            cout << a << " and " << b << " is palindrome\n";
    };
 
    return 0;
}
 
 
bool IsPalindrome( unsigned long orig )
{
  unsigned long reversed = 0, n = orig;
  while (n > 0)
  {
    reversed = reversed * 10 + n % 10;
    n /= 10;
unsinged int,
  }
  return ( orig == reversed );
}
В строчке
bool IsPalindrome( unsigned long );
int _tmain(int argc, _TCHAR* argv[])
тоже пишет ") expected".Кроме этого еще 3 ошибки(описание на скриншотах).Кто может помогите пожалуйста
Миниатюры
Найти произведение позитивных элементов главной диагонали матрицы   Найти произведение позитивных элементов главной диагонали матрицы  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2010, 23:03
Ответы с готовыми решениями:

Найти произведение положительных элементов, расположенных ниже главной диагонали матрицы
Проблема в том, что если нет положительных элементов, то выводит присвоенную единицу. Как...

К сумме элементов главной диагонали матрицы прибавить произведение элементов побочной диагонали
Дан массив из целых чисел А(5 х 5). К сумме элементов главной диагонали прибавить произведение...

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

Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали
Дана целочисленная квадратная матрица размера n  m (n, m вводятся). Значения элементов матрицы...

15
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
09.06.2010, 23:20 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1)
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
#include <iostream.h>
 
int main()
{
        long Dobutok = 1, Summa = 0;
        int A [ 6 ][ 6 ] = {
                { 6, -7, -3, 0, 5, -1 },
                { 5, -1,  4, 3, 3, -9 },
                { 1, -4, -2, 6, 4,  3 },
                { 0, 12, -2, 3, 1, -7 },
                { 9,  5, -3, 3, 5,  3 },
                { 3, -2,  4,-1, 8, -4 }
        };
 
        cout << "Matrix mae vyglyad\n";
        for ( int i = 0; i < 6; i++ ) {
                for ( int j = 0; j < 6; j++ )
                        cout << A [ i ][ j ] << '\t'; 
                cout << endl << endl << endl << endl ;
        }
 
 
        for ( int i = 0; i < 6; i++ )
                if ( A [ i ][ i ] > 0 ) Dobutok = Dobutok * A [ i ][ i ];
 
        cout << "\nDobutok dodatnih elementiv golovnoi diagonali = " << Dobutok;
 
 
        cout << "\nSyma elementiv, nyjchih za pobichny diagonal = ";
        for ( int j = 5; j > 0; j-- )
                for ( int i = 5; i > ( 5 - j ); i-- )
                        { Summa = Summa + A [ i ] [ j ];
                                cout << A [ i ] [ j ] << '+';
                        };
        cout << "\b = " << Summa;
 
        return 0;
}
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
#include <iostream.h>
 
bool IsPalindrome( unsigned long );
int main()
{
        unsigned int M, N;
        unsigned long b;
 
        cout << "Please input left M value [integer expected]: ";
        cin >> M;
        cout << "Please input right M value [integer expected]: ";
        cin >> N;
 
        for ( unsigned int a = M; a <= N; a++ ) {
                b = a * a;
                if ( IsPalindrome( a ) && IsPalindrome( b ) )
                        cout << a << " and " << b << " is palindrome\n";
        };
 
        return 0;
}
 
 
bool IsPalindrome( unsigned long orig )
{
  unsigned long reversed = 0, n = orig;
  while (n > 0)
  {
    reversed = reversed * 10 + n % 10;
    n /= 10;
unsinged int,
  }
  return ( orig == reversed );
}
Вроде все
1
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
09.06.2010, 23:26  [ТС] 3
Спасибо.Проверим
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
10.06.2010, 07:40  [ТС] 4
К сожалению появились новые ошибки.Вот ошибка 1го задания.
ЗЫ M128K145 возможно это из-за разных версий компилятора, можете сказать название и версию своего?
Миниатюры
Найти произведение позитивных элементов главной диагонали матрицы  
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
10.06.2010, 07:42  [ТС] 5
А вот ошибки 2го
Миниатюры
Найти произведение позитивных элементов главной диагонали матрицы   Найти произведение позитивных элементов главной диагонали матрицы   Найти произведение позитивных элементов главной диагонали матрицы  

Найти произведение позитивных элементов главной диагонали матрицы   Найти произведение позитивных элементов главной диагонали матрицы  
0
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
10.06.2010, 07:52 6
во втором коде вопервых неправильно записана 31я строка во вторых не имеет смысла, в третьих даже если б имела то где переменная на которую указывается тип, без 31й все компилится

Добавлено через 2 минуты
первый код компилится без ошибок. версия борланб 5.02
1
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
10.06.2010, 07:53  [ТС] 7
Добавлено через 2 минуты
первый код компилится без ошибок. версия борланб 5.02[/QUOTE]

значит у меня что то с борландом
0
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
10.06.2010, 07:56 8
возможно,таким кактвой я не юзал
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
13.06.2010, 20:10  [ТС] 9
Посмотрите ошибки еще в одном задании пожалуйста
Дана матриця М(5,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
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream.h>
void main()
{       clrscr();
    int m[5][5];
    int l,k,max;
    for(int i=0;i<5;i++)
    for(int j=0;j<5;j++)
{     cout<<"m["<<i<<"]["<<j<<"]="; cin>>m[i][j];
        }
    m[0][4]=max;
    for(i=0;i<5;i++)
{   for(int j=4;j>=0;j--)
{       if(m[i][j]>max) max=m[i][j];
    cout<<m[i][j]}
    l=i;
    k=j;
    }
    for(int j=0;j<=4;j++)
    m[l][j]=0;
    for(i=0;i<=4;i++)
    m[i][k]=0;
 
    for(i=0;i<5;i++)
    {
    for(j=0;j<5;j++)
{   cout<<m[i][j]<<" ";
 
}       cout<<endl;
}       }
0
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
13.06.2010, 20:29 10
Цитата Сообщение от ARTcuda Посмотреть сообщение
Посмотрите ошибки еще в одном задании пожалуйста
Дана матриця М(5,5). Серед елементів побічної діагоналі знайти найбільший елемент. Вивести його на друк і обнулити рядок і стовпець, в якому він розташований
по русски

Добавлено через 7 минут
я понял так....среди элементов побочной диагонали найти наибольший элемент....
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
13.06.2010, 20:35  [ТС] 11
Дана матрица М(5,5). Среди элементов во второстепенной диагонали найти наибольший элемент. Вывести его на печать и обнулить строчку и столбец, в котором он расположен
0
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
13.06.2010, 20:40 12
Цитата Сообщение от ARTcuda Посмотреть сообщение
значит у меня что то с борландом
попробуй вот этот borland

Добавлено через 1 минуту
ясно....ща подумаю
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
13.06.2010, 21:03  [ТС] 13
Цитата Сообщение от cibertronic Посмотреть сообщение
по русски

Добавлено через 7 минут
я понял так....среди элементов побочной диагонали найти наибольший элемент....
Дана матрица М(5,5). Среди элементов второстепенной диагонали найти наибольший элемент. Вывести его на печать и обнулить строку и столбец, в котором он расположен
0
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
13.06.2010, 22:17 14
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
 
void main()
{
 
int m[5][5];
int i,j,k=0,max,l=0,n=5;
 
system("echo введите елементы матрицы");
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
 
scanf("%d",&m[i][j]);  // ввод элементов матрицы
 
 
max=m[0][4]; // предполагаем что максимальный елемент в последнем столбце первой строки
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==(n-i-1))    // элементы побочной диагонали
{
if(m[i][j]>max)  //если текущий элемент больше максимального
{
max=m[i][j];     //запоминаем его
l=i;             //его номер строки
k=j;             //его номер столбца
}
}
}
}
system("cls"); // очистка экрана
 
system("echo введеная матрица");
 
for(i=0;i<n;printf("\n"),i++)
for(j=0;j<n;j++)
printf("%5d",m[i][j]);
system("echo максимальный элемент на побочной диагонали");
printf("%d",max);
 
printf("\n\n");
 
system("echo полученная матрица");
 
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i==l || j==k)
m[i][j]=0;
 
 
for(i=0;i<n;printf("\n"),i++)
for(j=0;j<n;j++)
printf("%5d",m[i][j]);
 
 
 
 
getch();
}
Добавлено через 56 секунд
думаю так

Добавлено через 3 минуты
кстати третью строку вообще нужно убрать....с твоего кода осталась....тут математические функции вообще не нужны. только память отнимают....это не основное но препод спросить может зачем.

Добавлено через 9 минут
да...и, если в студии будешь показывать то после строк #include.... то есть после заголовочных файлов нужно писать
C++
1
using namespace std;
иначе может не пойти. а вообще советую показывать на том борланде что ссыль давал или на твоем компиллере. должно все норм быть. ес че пиши в личку
1
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 18
13.06.2010, 22:17  [ТС] 15
спасибо большое

Добавлено через 25 секунд
я скачал 5,02.на нем все отлично
0
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
13.06.2010, 22:19 16
ну тады удачи в программинге, и ичись
0
13.06.2010, 22:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2010, 22:19
Помогаю со студенческими работами здесь

Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали
В строчке int **matrix = malloc(sizeof(int*) * rows); выделяет функцию malloc, а в строчке matrix...

Найти сумму неотрицательных элементов матрицы выше побочной диагонали и ниже главной диагонали
Есть задание: Дана квадратная вещественная матрица размерности n. Найти сумму неотрицательных...

Вычислить произведение положительных элементов матрицы, расположенных на главной диагонали и выше нее
Пожалуйста помогите составить программу в системе С

В массиве найти произведение элементов ниже главной диагонали
В двумерном массиве A из m строк и n столбцов найти произведение элементов ниже главной диагонали и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru