Как найти количество отрицательных элементов двумерного массива

Имя)))

0 / 0 / 0

Регистрация: 27.12.2011

Сообщений: 15

1

в двумерном массиве посчитать сколько отрицательных чисел

05.06.2012, 15:08. Показов 3544. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<iostream.h>
void main()
{ ;
 int i,j, p=0;
 int mas[4][4];
 cout<<"Vvedite 16 chisel "<<endl;
 for (i=0; i<4; i++);
 for (j=0; j<4; j++); 
 scanf ("%i", &mas[4][4]);
 for (i=0; i<4; i++);
 for (j=0; j<4; j++);
 if (mas[i][j]<0) p=p++;
 cout<<"Otricatel'nih chisel "<<p<<endl;
}

ввожу только одно значение, выдает ошибку, сразу делает последнее деёствие и закрывается



0



rangerx

2020 / 1619 / 489

Регистрация: 31.05.2009

Сообщений: 3,005

05.06.2012, 15:33

2

C++
1
scanf ("%i", &mas[i][j]);
C++
1
if (mas[i][j]<0) ++p;



0



The_Immortal

1569 / 505 / 48

Регистрация: 04.04.2009

Сообщений: 1,891

05.06.2012, 15:34

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
#include <cstdlib>
#include <iostream>
using namespace std;
 
int main(int nNumberofArgs, char* pszArgs[])
{
int i,j, p=0;
int mas[4][4];
cout<<"Vvedite 16 chisel "<<endl;
 
for (i=0; i<4; i++)
for (j=0; j<4; j++) 
scanf ("%i", &mas[i][j]);
 
for (i=0; i<4; i++)
for (j=0; j<4; j++)
if (mas[i][j]<0) p=p+1;
 
cout<<"Otricatel'nih chisel "<<p<<endl;
 
system("PAUSE");
return 0;
}



1



-comrade-

364 / 365 / 167

Регистрация: 11.06.2010

Сообщений: 703

05.06.2012, 15:34

4

Цитата
Сообщение от Имя)))
Посмотреть сообщение

for (i=0; i<4; i++);
for (j=0; j<4; j++);
scanf (“%i”, &mas[4][4]);
for (i=0; i<4; i++);
for (j=0; j<4; j++);
if (mas[i][j]<0) p=p++;

C++
1
2
3
4
5
6
7
for (i=0; i<4; i++)
   for (j=0; j<4; j++)
      scanf("%i", &mas[i][j])
 
for (i=0; i<4; i++)
   for (j=0; j<4; j++)
      if (mas[i][j]<0) p++;



1



1569 / 505 / 48

Регистрация: 04.04.2009

Сообщений: 1,891

05.06.2012, 15:41

5

Ребят, а почему у меня Dev кричит

?

Не хочет void воспринимать… Это от компилятора зависит?



0



42 / 42 / 8

Регистрация: 24.11.2009

Сообщений: 165

05.06.2012, 15:43

6

Цитата
Сообщение от The_Immortal
Посмотреть сообщение

Ребят, а почему у меня Dev кричит

?

Не хочет void воспринимать… Это от компилятора зависит?

кстати тоже всегда интересовал этот вопрос, в Borland c++ спокойно компилируется когда main типа void, а вот сейчас всегда стараюсь писать в notepad++ и потом компилировать с помощью g++, и он ругается так же на void :/



0



2020 / 1619 / 489

Регистрация: 31.05.2009

Сообщений: 3,005

05.06.2012, 18:26

7

The_Immortal,
bLesk,
С++ является стандартизированным языком программирования. Любое возвращаемое значение функции main кроме int не являяется стандартным, и не обязано поддерживаться всеми компилятороми С++. Поэтому, для того чтобы код был переносим всегда следует указывать

int

в качестве возвращаемого значения main(return в main при этом не обязателен).



2



0 / 0 / 0

Регистрация: 27.12.2011

Сообщений: 15

05.06.2012, 19:50

 [ТС]

8

Всем большое спасибо.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

05.06.2012, 19:50

8

Формулировка задачи:

Найти количество отрицательных элементов в каждой строке
двумерного массива, состоящего из 7 строк и 5 столбцов….решение в паскале и блок схема….)))очень нужно…заранее спасибо))))))))

срочно нужно…завтра зачет!!((((((((помогите пожалуйста((((

Код к задаче: «Найти количество отрицательных элементов в каждой строке двумерного массива, состоящего из 7 строк и 5 столбцов.»

textual

Листинг программы

uses crt;
const m=7;
      n=5;
var a:array[1..m,1..n] of integer;
    i,j,k:integer;
begin
clrscr;
randomize;
writeln('Массив:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(50)-25;
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
writeln('Количество отрицательных в строках:');
for i:=1 to m do
 begin
  k:=0;
  for j:=1 to n do
  if a[i,j]<0 then k:=k+1;
  writeln('Строка ',i,'=',k);
 end;
readln
end.

Написать программу паскаль, которая выводит на экран количество отрицательных элементов двумерного массива…

Дарья Александровна



Ученик

(208),
закрыт



7 лет назад

Написать программу паскаль, которая выводит на экран количество отрицательных элементов двумерного массива 5 строк и 10 колонок



Высший разум

(1263710)


7 лет назад

program q183452822;
var
i, j, c: Integer;
a: array [1..5, 1..10] of Integer;
begin
Randomize;
c := 0;
for i := 1 to 5 do
begin
for j := 1 to 10 do
begin
a[i, j] := Random(100) – 50;
Write(a[i, j]:4);
if a[i, j] < 0 then
Inc(c);
end;
WriteLn;
end;
WriteLn(‘Count: ‘, c);
ReadLn;
end.

Дарья АлександровнаУченик (208)

7 лет назад

спасибо большое, но объясните пожалуйста такому чайнику как я, почему в это строке Write(a[i, j]:4) четверка?


Высший разум
(1263710)
Чтобы выровнять в столбец. Допустим -50 это 3 символа + 1 пробел = 4

Программа ввода и вывода элементов массива может выглядеть следующим образом:

program z1;
const nm=10; mm=10;
type mas=array[1..nm,1..mm] of real;
var a:mas;
i,j,n,m:integer;

procedure zap(var a:mas);
var i,j:integer;
begin
assign(input,’input.txt’);
reset(input);
readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
close(input);
end;

procedure vyv( a:mas);
var i,j:integer;
begin
assign(output,’output.txt’);
rewrite(output);
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:8:2);
writeln;
end;
close(output);
end;

begin
zap(a);
vyv(a);
end.


Сохраните программу в файл и используйте как шаблон для решения задач с двумерным массивом.


Задания

Задание 1. Найти максимальный элемент массива и его номера. Элементы могут повторяться.

Указание: Поиск максимального элемента в двумерном массиве осуществляется таким же образом, как и в линейном массиве: предполагают, что максимальный – это первый элемент, затем максимальный сравнивается со следующим элементом, и если максимальный окажется меньше, то заменяем его значение.

Формат ввода:
В первой строке вводятся числа n и m – количество строк и столбцов массива
В следующих строках находятся элементы массива построчно

Формат вывода:
В первой строке – максимальный элемент
Во второй и следующих строках номер строки и номер столбца максимального элемента



      Тесты                 Посмотреть решение        

Экспериментальный раздел

1. Найти минимальный элемент массива и его номера. Элементы могут повторяться.
2. Найти минимальный элемент среди элементов главной и побочной диагоналей.


Задание 2. Найти количество отрицательных элементов в каждой строке.

Указание: количество элементов каждой строки хранить в одномерном массиве соответствующей размерности.

Формат ввода:
В первой строке вводятся числа n и m – количество строк и столбцов массива
В следующих строках находятся элементы массива построчно

Формат вывода:
В строку записаны числа – количества отрицательных элементов в каждой строке


        Тесты                Посмотреть решение         

Экспериментальный раздел

1. Найти количество кратных 5 элементов в каждой строке.
2. Найти количество кратных 5 и 2 элементов в каждой строке.
3. Найти количество кратных 5 или 2 элементов в каждой строке.
4. Найти количество отрицательных элементов в каждом столбце.


Задание 3. Дан двумерный массив А, состоящий из n x m вещественных чисел. Известно, что среди его элементов только два равны между собой. Напечатать их индексы.
Указание: Для просмотра первого элемента использовать циклы по переменным i и j, для просмотра второго элемента использовать циклы по переменным  i1 и j1.
Сравниваем a[i,j] c a[i1,j1]. Для исключения просмотра одного и того же элемента проверить условие (not((i=i1) and (j=j1))).

Формат ввода:
В первой строке вводятся числа n и m – количество строк и столбцов массива
В следующих строках находятся элементы массива построчно

Формат вывода:

В первой строке – индексы первого из равных элементов
Во второй строке – индексы второго из равных элементов



            Тесты       Посмотреть решение          


Задание 4. Определить, является ли данный квадратный массив симметричным относительно своей главной диагонали.

Указание: В задачах подобного типа необходимо увидеть зависимость между индексами элементов массива.

Если массив является симметричным, то для него выполняется равенство

 A[i, j]=A[j, i] для всех i=1..n и j=1..n.


Формат ввода:
В первой строке вводится число n – количество строк и столбцов массива
В следующих строках находятся элементы массива построчно

Формат вывода:
вывести YES или NO



          Тесты               
Посмотреть решение          

Экспериментальный раздел

1. Определить, является ли данный квадратный массив симметричным относительно своей побочной диагонали.


Задание 5. В массиве размерностью NxM к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.

Указание: рассматриваем только четные столбцы и к элементу первой строки прибавляем a[1,1], к элементу второй строки прибавляем a[2,1] и т.д.


Формат ввода:
В первой строке вводятся числа n и m – количество строк и столбцов массива
В следующих строках находятся элементы массива построчно

Формат вывода:

Построчно элементы преобразованного массива

          Тесты             Посмотреть решение         

Экспериментальный раздел

1. В массиве размерностью NxM к элементам четных строк прибавить элемент первой строки соответствующего столбца.
2. К нечетным элементам прибавить соответствующие по строке элементы главной диагонали.


Задание  6. Заполнить массив А размером NxM “змейкой” следующим образом:

1

2

3

4

5

6

7

14

13

12

11

10

9

8

15

16

17

18

19

20

21

28

27

26

25

24

23

22

Указание: Для того, чтобы заполнить, надо вывести правило заполнения:

·         если строка нечетная, то   A[i,j]=(i-1)*m+j;

·         если строка четная, то     A[i,j]=i*m-j+1.



Формат вывода
Вывести построчно элементы массива

     Посмотреть решение          

Экспериментальный раздел

1. Заполнить массив размером m x n змейкой, начиная с последнего элемента.

22

23

24

25

26

27

28

21

20

19

18

17

16

15

8

9

10

11

12

13

14

7

6

5

4

3

2

1


Задания для самостоятельного решения

1. Заменить все отрицательные элементы на противоположные.

2. Дан массив  D(6,5). Выведите его на экран в виде таблицы.  Найдите и выведите  количество элементов больших среднего арифметического всех его элементов.

3. Заполнить массив А размером NxM следующим образом:

21

20

19

18

17

16

15

8

9

10

11

12

13

14

7

6

5

4

3

2

1


Тест


Подождите!

Не закрывайте страницу. Нейросеть пишет ответ. Он появится тут.

Этот ответ написан нейросетью.

Искуственный интеллект во многом преуспевает, но в некоторых областях может давать неточные ответы.
Если вам не понравился ответ, попробуйте задать его более развёрнуто и конкретно, используя точные параметры.

Ответ нейросети:

Для решения данной задачи потребуется создать графический интерфейс с помощью библиотеки tkinter для более удобного взаимодействия пользователя с программой.

1. Создание графического интерфейса.

Сначала импортируем необходимые библиотеки и создадим главное окно:

from tkinter import *



root = Tk()

root.title("Program")

root.geometry("300x300")

Далее необходимо создать поле для ввода размерности массива и кнопку для вызова функции расчета отрицательных элементов:

n_label = Label(root, text="Input n: ")

n_label.pack()



n_entry = Entry(root, width=15)

n_entry.pack()



m_label = Label(root, text="Input m: ")

m_label.pack()



m_entry = Entry(root, width=15)

m_entry.pack()



button = Button(text="Count", bg="green", fg="white", width=15, height=2, command = count_negatives)

button.pack()

Функция count_negatives будет вызываться при нажатии на кнопку и будет считать количество отрицательных элементов больше -9, а также выводить результат в новом окне.

2. Расчет отрицательных элементов.

Функция count_negatives будет принимать значения полей n_entry и m_entry, создавать двумерный массив, заполнять его случайными значениями и подсчитывать количество отрицательных элементов.

import random



def count_negatives():

    n = int(n_entry.get())

    m = int(m_entry.get())



    arr = [[random.randint(-10, 10) for j in range(m)] for i in range(n)]

    

    count = 0

    for i in range(n):

        for j in range(m):

            if arr[i][j] < -9:

                count += 1

    

    result_window = Toplevel(root)

    result_window.geometry('200x100')

    result_window.title('Result')



    result_label = Label(result_window, text=f"Negative elements > -9: {count}")

    result_label.pack()

Функция создает массив arr размерности n x m с помощью вложенного генератора списков и считает количество отрицательных элементов больше -9 с помощью двух циклов for. Затем функция создает новое окно с помощью метода Toplevel, выводит на нем результат в виде надписи и открывает его при помощи метода pack().

3. Запуск программы.

root.mainloop()

Вызов метода mainloop() гарантирует постоянное отображение главного окна до закрытия программы пользователем.

Вот и всё! Готово! Теперь при запуске программы будет отображаться главное окно, в котором пользователь должен ввести размерность массива n и m и нажать на кнопку “Count”, которая вызовет функцию count_negatives и выведет количество отрицательных элементов больше -9 в новом окне.

⚠️Зарепортить пост!

Добавить комментарий