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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
17.03.2012, 01:51     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #1
Помогите пожалуйста задали написать, а я толком не могу понять как это делать.
6Дана матрица А размерностью nхm. Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки массива А. (0 – отрицательный элемент отсутствует).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 01:51     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы
Посмотрите здесь:

C++ Сформировать одномерный массив, элементами которого являются средние арифметические значения элементов главной и побочной диагоналей
Дана матрица А(n,m). Сформировать одномерный массив В(n), элементами которого являются суммы элементов i-ой строки. C++
Сформировать одномерный массив из номеров первых отрицательных элементов каждой строки матрицы C++
C++ кому хочется поработать с матрицей? (Сформировать одномерный массив В(n), элементами которого являются суммы элементов i-ой строки)
C++ Одномерный массив, элементами которого являются суммы положительных элементов строк матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HackSign
33 / 33 / 13
Регистрация: 23.11.2006
Сообщений: 109
17.03.2012, 11:01     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #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
#include <iostream.h> 
#include <conio.h> 
#include <stdlib.h> 
  int main() 
{ 
 int a[20][20]; 
 int x, y, i, j, c;
int b[20]; 
 
 cout<<"Vvedite colichestvo strok, ot 4 do 7"<<" ";  cin>>x; 
 cout<<"Vvedite colichestvo stolbtsov ot 4 do 7"<<" "; 
 cin>>y; 
 if((x<4)||(x>7)) 
  { 
   cout<<"Error. Nepravilno zadano kolichestvo strok!"; 
   cout<<"Press any key to exit"; 
   getch(); 
   exit (0); 
   } 
if((y<4)||(y>7)) 
  { 
   cout<<"Error. Nepravilno zadano kolichestvo stolbtsov!"; 
   cout<<"Press any key to exit"; 
   getch(); 
   exit (0); 
   } 
 cout<<"Vvod elementov massiva!"<<"\n"; 
 for(i=0;i<=x ; i++)  { 
  for(j=0; j<=y; j++) 
   { 
    cout<<"a["<<i<<"]["<<j<<"]="<<" "; 
    cin>>a[i][j]; 
    cout<<"\n"; 
    }   }   i=0; c=0;   // теперь отыскиваем первые отрицательные элементы в столбцах и записываем в массив  b  while (j!=y) 
 { 
   for (i=0; i<=x; i++)    { 
    if(a[i][j]<0)      { 
      b[c]=a[i][j]; 
      c=c+1; 
      j=j+1;       break; //  прерываем выполнение цикла for       }     }    if(j==y)    { 
    for (i=0; i<=y; i++)    { 
    if(a[i][j]<0)      { 
      b[c]=a[i][j]; 
      c=c+1; 
      break; // прерываем выполнение цикла for     }      } 
      
}  break; // прерываем выполнение цикла while }  // выводим значение массива b на экран  for(i=0; i<=c; i++) 
 { 
  cout<<"b["<<i<<"]="<<" "<<b[i]<<"\n"; 
  } cout<<"Press any key to exit"; 
getch();
 return 0; 
}
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
17.03.2012, 13:29  [ТС]     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #3
Огромное при огромное тебе спасибо, ты спас меня
Vladimir
Сообщений: n/a
05.04.2012, 23:15     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #4
Так пойдет,

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 "stdafx.h"
#include <iostream>
 
#define I 5
#define J 5
 
int a[I][J] = { {1,2,-3,4,5},
                {1,2,3,4,5},
                {1,-2,3,4,5},
                {1,2,3,4,-5},
                {-1,2,3,4,5}};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    
    int i,j;
    int b[I] = {0,0,0,0,0};
 
    for (i=0; i<I; i++)
    {
        for (j=0; j<J; j++)
        {
            std::cout << a[i][j] << " ";
            if (b[i] == 0 && a[i][j] < 0)
            b[i] = j+1;
    
        }
        std::cout << std::endl;
    }
 
    for (i=0; i<I; i++)
        std::cout << b[i] << " ";
    std::cout << std::endl;
    system ("pause");
    return 0;
}
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
05.04.2012, 23:28  [ТС]     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #5
Спасибо тебе за роботу, но что то оно не работает. Но все равно спасибо
baboo
3 / 3 / 1
Регистрация: 05.04.2012
Сообщений: 9
05.04.2012, 23:48     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #6
Цитата Сообщение от Vladimir Посмотреть сообщение

C++
1
2
3
4
5
6
7
    ...
 
    std::cout << a[i][j] << " ";
    if (b[i] == 0 && a[i][j] < 0)
    b[i] = j+1;
 
    ...
C++
1
2
3
4
    if( a[ i][ j] < 0 ){
        b[ i] = a[ i][ j];
        break;
    }
Vladimir
Сообщений: n/a
05.04.2012, 23:50     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #7
писал на vs2010.

Добавлено через 1 минуту
Цитата Сообщение от baboo Посмотреть сообщение
C++
1
2
3
4
    if( a[ i][ j] < 0 ){
        b[ i] = a[ i][ j];
        break;
    }
неверно, по условию надо индекс отрицательного элемента писать
C++
1
2
3
4
    if( a[ i][ j] < 0 ){
        b[ i] = j+1;
        break;
    }
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
06.04.2012, 08:21     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #8
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int main()
{
int i,j,n,m;
while(!fflush(stdin)&&printf("Vvedite kolichestvo strok = ")&&!scanf("%i",&n));
while(!fflush(stdin)&&printf("Vvedite kolichestvo stolbcov = ")&&!scanf("%i",&m));
         int **A = (int**)malloc(n*sizeof(int));//ñîçäГ*ГҐГ¬ Г¬Г*Г±Г±ГЁГў ГЁ âûäåëåì ГЇГ*ìÿòü
         int *B = (int*)malloc((n+m)*sizeof(int));//ñîçäГ*ГҐГ¬ Г¬Г*Г±Г±ГЁГў ГЁ âûäåëåì ГЇГ*ìÿòü
         for (i = 0;i<n;i++)//ïðîõîäèìñÿ Гў öèêëå ГЇГ® ñòðîêГ*Г¬ Г¬Г*Г±Г±ГЁГўГ*
         {
           A[i] = (int*)malloc(m*sizeof(int));//âûäåëåì ГЇГ*ìÿòü ГЁ ïîäñ÷èòûâГ*ГҐГ¬ Г°Г*çìåð ïåðåâåГ*Г*îé n
         }
printf("\nVvod matrix A\n\n");
for(i=0;i<n;i++)
{
                for(j=0;j<m;j++)
                {
                    while(!fflush(stdin)&&printf("A[%d][%d]: ",i+1,j+1)&&!scanf("%i",&A[i][j]));            
                }
}
system("cls");
printf("\tMatrix A\n\n");
for(i=0;i<n;i++)
{
                for(j=0;j<m;j++)
                {
                    printf("%d ",A[i][j]);          
                }
                printf("\n");
}
printf("\nMassiv B: ");
for(i=0;i<n;i++)
{
                for(j=0;j<m;j++)
                {
                    if(A[i][j]<0)
                    {
                                 B[i]=A[i][j];
                                 printf("%d ",B[i]);
                    }
                }
}
for(i=0;i<n;i++)
{
                free(A[i]);
}
free(A);
free(B);
getch();
return 0;
}
B.Krols
 Аватар для B.Krols
6 / 6 / 2
Регистрация: 10.02.2012
Сообщений: 21
20.05.2012, 15:26     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    const int n = 4;
    const int m = 3;
    int B[n];
    int A[n][m] = {
        {3, -2, 4},
        {2, 0, 3},
        {-65, -2, -4},
        {1, 0, -7},
    };
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            if (A[i][j] < 0)    {
                B[i] = j; //если номера начинаются с 0
                //B[i] = j+1; //если подразумевается, что номера начинают с 1
                break;
            }
            B[i] = 0;
        }
    }
}
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
20.05.2012, 15:38  [ТС]     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #10
она что то не работает, выводит черный экран и все. и можно написать, пожалуйста что бы массив вводит с клавиатуры.
B.Krols
 Аватар для B.Krols
6 / 6 / 2
Регистрация: 10.02.2012
Сообщений: 21
20.05.2012, 16:03     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #11
Программа работает так, как написано в условии.
Цитата Сообщение от olya.kay Посмотреть сообщение
пожалуйста что бы массив вводит с клавиатуры.
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
#include <iostream>
 
int main()
{
    int i, j;
    const int n = 2, m = 3;
    
    int B[n];
    int A[n][m];
 
    for (i=0; i<n; i++) {
        for (j=0; j<m; j++) {
            std::cin >> A[i][j];
        }
    }
 
    for (i=0; i<n; i++) {
        for (j=0; j<m; j++) {
            if (A[i][j] < 0)    {
                B[i] = j; //если номера начинаются с 0
                //B[i] = j+1; //если подразумевается, что номера начинают с 1
                break;
            }
            B[i] = 0;
        }
    }
 
    for (i=0; i<n; i++)
        std:: cout << B[i] << " ";
}
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
20.05.2012, 16:13  [ТС]     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #12
все равно оно что то не правильно определит отрицательные элементы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2012, 16:28     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы
Еще ссылки по теме:

Матрицы. Сформировать одномерный массив L(m), элементами которого являются суммы элементов j-ого столбца C++
C++ Сформировать одномерный массив, содержащий количество нулевых элементов каждой строки матрицы
Сформировать одномерный массив, элементы которого равны произведениям индексов последних отрицательных элементов диагоналей C++

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

Или воспользуйтесь поиском по форуму:
B.Krols
 Аватар для B.Krols
6 / 6 / 2
Регистрация: 10.02.2012
Сообщений: 21
20.05.2012, 16:28     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы #13
Цитата Сообщение от olya.kay Посмотреть сообщение
Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки массива А. (0 – отрицательный элемент отсутствует).
Ключевое слово - номера.
Программа формирует массив B, содержащий номер элемента в строке массива А.
Что-то не так?
Yandex
Объявления
20.05.2012, 16:28     Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы
Ответ Создать тему
Опции темы

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