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

Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию - C++

Восстановить пароль Регистрация
 
ЕЛЕНА Димова
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 2
12.06.2013, 20:30     Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию #1
Дана целочисленная матрица A(N, M). Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию | ai j | < i.Помогите исправить ошибки в этой программе, она работает не правильно так как сумма всегда равна 0, а произведение всегда равно 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
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "math.h"
int main()
{
setlocale (LC_ALL,"rus");
int a[100][100], N, M, i, j,S=0,P=1;
printf("Введите N и M: ");
scanf("%d %d",&N, &M);
for (i=0;i<N;i++)
for (j=0;j<M;j++)
{printf("Введите элемент массива: a[%d][%d]: ",i,j);
scanf("%d",&a[i][j]);}
for 
(i=0;i<N;i++)
for (j=0;j<M;j++)
{if ((abs(a[i][j])<i) && (a[i][j]<0) && (a[i][j]&1))
{S=S+a[i][j];
P=P*a[i][j];}}
printf("Сумма =%d",S);
printf("Произведение =%d",P);
getch ();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 20:30     Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию
Посмотрите здесь:

Вычислить количество и произведение элементов массива, удовлетворяющих условию C++
Дана матрица A(3,3) Найти максимальный элемент 2й строки среди элементов, удовлетворяющих условию -1,2<=A2i<=4,7 C++
Дана целочисленная матрица A(N, M). Вычислите сумму и произведение тех её элементов, которые при делении на два дают нечётное число. C++
Найти произведение элементов, удовлетворяющих условию 0 < tan < 1 C++
C++ Дана целочисленная прямоугольная матрица. Определить произведение элементов в тех строках, которые не содержат отрицательных элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
12.06.2013, 20:47     Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию #2
Всё работает! ты наверняка не те числа вводишь. Там довольно строгое условие, чтобы число удовлетворяло добавлению в сумму. Например, в моём примере только два числа из девяти введённых удовлетворяют условию

Добавлено через 2 минуты
http://s2.ipicture.ru/uploads/201306...s/w4xQXt8O.jpg

Добавлено через 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
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
int main()
{
    setlocale (LC_ALL,"rus");
    int a[100][100], N, M, i, j,S=0,P=1;
    printf("Введите N и M: ");
    scanf("%d %d",&N, &M);
    for (i=0;i<N;i++)
      for (j=0;j<M;j++) {
            printf("Введите элемент массива: a[%d][%d]: ",i,j);
        scanf("%d",&a[i][j]);
          }
    for (i=0;i<N;i++)
      for (j=0;j<M;j++){
             if ((abs(a[i][j])<i) && (a[i][j]<0) && (a[i][j]&1)){
               S=S+a[i][j];
               P=P*a[i][j];
             }
          }
    printf("Сумма =%d",S);
    printf("Произведение =%d",P);
    getch ();
    return 0;
}
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 105
12.06.2013, 20:50     Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию #3
Kuzia domovenok, поясните пожалуйста что значит эта запись
C++
1
(a[i][j]&1)
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
12.06.2013, 21:03     Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию #4
Цитата Сообщение от Nikolai699 Посмотреть сообщение
Kuzia domovenok, поясните пожалуйста что значит эта запись
C++
1
(a[i][j]&1)
Особая проверка числа на нечётность.
Нечётное число это число, которое не делится без остатка на 2.
Оператор получения остатка от деления в языке Си это %
Поэтому аналогично вместо этой записи можно было б написать
C++
1
(a[i][j]%2!=0) //если остаток от деления на 2 не равен 0
Однако есть более оптимальный способ проверки нечётности.
По двоичному представлению числа, его чётность/нечётность можно определить без операции деления.
Достаточно посмотреть, чему равен младший разряд.
Как в десятичной системе ноль в младшем разряде числа является признаком делимости на 10. (550 делится на 10)
Так и аналогично в двоичной системе ноль в младшем разряде числа является признаком делимости на 2! (110(дв.) делится на 2)
Проверить отсутствие нуля во младшем разряде можно операцией побитового "И" с числом "один".
Так как в числе один в двоичной системе все разряды нули, кроме одного младшего. То результат операции "И" будет равен единице, если число нечётное и нулю, если число чётное.
6&1 равно 0
7&1 равно 1
Операция справедлива и для отрицательных чисел, представляемых в дополнительном коде.
Поэтому if (a[i][j]&1) означает "если a[i][j] нечётное"
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 105
12.06.2013, 21:08     Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию #5
Kuzia domovenok, спасибо за объяснение, очень доступно)просто первый раз встретил такую запись)
Yandex
Объявления
12.06.2013, 21:08     Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию
Ответ Создать тему
Опции темы

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