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

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

Войти
Регистрация
Восстановить пароль
 
ЕЛЕНА Димова
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 2
#1

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

12.06.2013, 20:30. Просмотров 718. Ответов 4
Метки нет (Все метки)

Дана целочисленная матрица 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 20:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дана матрица. Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию (C++):

Найти произведение отрицательных элементов массива и сумму положительных элементов, удовлетворяющих условию - C++
Добрый вечер, не могли вы помочь с решением вот этих двух задач ? Задача 1. В одномерном массиве, состоящем из n вещественных...

Дана целочисленная матрица A(N, M). Вычислите сумму и произведение тех её элементов, которые при делении на два дают нечётное число. - C++
Почему не работает???? вот задание ( может я не так понимаю задание... в коде посмотрите) 1)Дана целочисленная матрица A(N, M)....

Дана матрица A(3,3) Найти максимальный элемент 2й строки среди элементов, удовлетворяющих условию -1,2<=A2i<=4,7 - C++
Дана матрица A(3,3) Найти максимальный элемент 2й строки среди элементов, удовлетворяющих условию -1,2&lt;=A2i&lt;=4,7 Заранее спасибо

Дана матрица А (4,4) найти сумму нечетных элементов матрицы и произведение элементов находящихся на главной диагонали - C++
Дана матрица А (4,4) найти сумму нечетных элементов матрицы и произведение элементов находящихся на главной диагонали. Добавлено через...

Произведение элементов удовлетворяющих условию 0<tgXj < 1, А также сумму положительных - C++
Есть 2 задачи непонятно как решать (помоему там чета не хватает) подскажите...код писать не надо, просто словами расшифровать подробние. ...

Вычислить и вывести на экран сумму элементов заданной матрицы, удовлетворяющих условию - C++
Если честно не знаю как реализовать даннную программу, знаю, что через for, но как это прописать, не знаю, прошу помощи. #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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;
}
0
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 106
12.06.2013, 20:50 #3
Kuzia domovenok, поясните пожалуйста что значит эта запись
C++
1
(a[i][j]&1)
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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] нечётное"
1
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 106
12.06.2013, 21:08 #5
Kuzia domovenok, спасибо за объяснение, очень доступно)просто первый раз встретил такую запись)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 21:08
Привет! Вот еще темы с ответами:

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

Дана квадратная матрица найти количество отрицательных элементов , среднее арифметическое, произведение - C++
1) дана квадратная матрица n найти: а) количество отрицательных элементов данной матрицы б) среднее арифметическое элементов лежащих...

Дана квадратная матрица A[N,N]. Записать на место отрицательных элементов матрицы нули - C++
Дана квадратная матрица A. Записать на место отрицательных элементов матрицы нули , а на место положительных- единицы. Вывести на печать...

Найти произведение элементов, удовлетворяющих условию 0 < tan < 1 - C++
есть задача...найти произведение элементов удовлетворяющий условию 0&lt;tan&lt;1...дан массив...который должен содержаться в файле...т.е....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.06.2013, 21:08
Ответ Создать тему
Опции темы

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