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

Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки - C++

Восстановить пароль Регистрация
 
AnnieB
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 15
27.03.2013, 17:48     Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки #1
пусть дано натуральное число n и целочисленная квадратная матрица порядка n. Получите b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки (если все строки неотрицательные, то принять bi=100)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2013, 17:48     Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки
Посмотрите здесь:

Разница элементов массива, расположенных между первым отрицательным и вторым положительным C++
Сумма элементов массива, расположенных между первым и последним положительным элементом C++
Для заданной матрицы A(N, N) найти сумму элементов, расположенных в строках с отрицательным элементом на главной диагонали C++
Сумма элементов массива, расположенных между первым и последним элементом C++
Сумма элементов между первым положительным элементом массива и последним отрицательным C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AndrewKlykow
11 / 11 / 0
Регистрация: 18.03.2013
Сообщений: 32
27.03.2013, 18:06     Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки #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
int * r=new int [n]
for (i=0; i<n; i++)
{
int **c=new int[n];
r[i]=&c;
}//это было задание вашего массива
//потом заполняете ваш массив как хотите
int * b = new int[n];
for (int i=0;i<n;i++)
{
b[i]=0;
}// массив для ответов
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
if  (r[i][j]<0)
{
for (int k=j;k<n;k++)
{
b[i]++=r[i][k]
}
break;
}
if (j==n-1&&r[i][j]!=0)
{
b[i]=100;
}
Может быть ошибка, где break. Писал быстро.
AnnieB
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 15
27.03.2013, 19:50  [ТС]     Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки #3
спасибо большое, жаль что через указатели...

Добавлено через 1 час 17 минут
подскажите, что сделала не так? может какие-то проблемы с выводом? хочу чтобы программа выводила весь первоначальный массив(двумерный) и полученный массив(одномерный)
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
int main ()
 { 
     int a[N][N],sum, otvet[N], t, n, i, j, max, k;
     srand (time(0));
     cout << "Massiv a\n";
     for (i=0; i<N; i++)
     { 
         for(j = 0; j < N; j++)
       {
         a[i][j] = rand()%30;                              //рандомное заполнение массива
       }
     }
 
     for (i=0; i<N; i++)
     {  
        { 
            for (j=0; j<N; j++);
            cout<<"a["<<i<< "]"<< "[" << j << "]" << a[i][j] <<"\t"; }
            cout << "\n";
        }
    
     for (i=0; i<N; i++)
    {
        otvet[i]=0;
    }
     
     for (i=0; i<N; i++)
     {
         for(j = 0; j < N; j++)
       {
           if (a[i][j]<0)                                 //ищем отрицательный элемент в строке
           {
               for (k=j; k<N; k++)
               {
               otvet[i]=otvet[i] + a[i][k];               //суммируем элементы после первого отрицательного, записывая их в i-ую строку в одномерном массиве ответов
               }
               break;
           }
           if (j==N-1 && a[i][j]>0)
                {
                otvet[i]=100;
                }
       }
     }
           
    cout<<"summa elementov posle pervogo otrizatelnogo ="<<otvet[i]<<"\t";
    getch();
    return(0);
 }
Добавлено через 21 минуту
помогите пожалуйста
Цитата Сообщение от AnnieB Посмотреть сообщение
подскажите, что сделала не так? может какие-то проблемы с выводом? хочу чтобы программа выводила весь первоначальный массив(двумерный) и полученный массив(одномерный)
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
int main ()
 { 
     int a[N][N],sum, otvet[N], t, n, i, j, max, k;
     srand (time(0));
     cout << "Massiv a\n";
     for (i=0; i<N; i++)
     { 
         for(j = 0; j < N; j++)
       {
         a[i][j] = rand()%30;                              //рандомное заполнение массива
       }
     }
 
     for (i=0; i<N; i++)
     {  
        { 
            for (j=0; j<N; j++);
            cout<<"a["<<i<< "]"<< "[" << j << "]" << a[i][j] <<"\t"; }
            cout << "\n";
        }
    
     for (i=0; i<N; i++)
    {
        otvet[i]=0;
    }
     
     for (i=0; i<N; i++)
     {
         for(j = 0; j < N; j++)
       {
           if (a[i][j]<0)                                 //ищем отрицательный элемент в строке
           {
               for (k=j; k<N; k++)
               {
               otvet[i]=otvet[i] + a[i][k];               //суммируем элементы после первого отрицательного, записывая их в i-ую строку в одномерном массиве ответов
               }
               break;
           }
           if (j==N-1 && a[i][j]>0)
                {
                otvet[i]=100;
                }
       }
     }
           
    cout<<"summa elementov posle pervogo otrizatelnogo ="<<otvet[i]<<"\t";
    getch();
    return(0);
 }
AndrewKlykow
11 / 11 / 0
Регистрация: 18.03.2013
Сообщений: 32
28.03.2013, 15:48     Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки #4
Вы подключили fstream для вывода через cout<<??
Если нет, то пропишите перед вверху файла
C++
1
#include <iostream>
И чтобы у вас otvet[i] выводилось все, пропишите его в цикл, а то мне кажется он у вас где-то вне цикла.
C++
1
2
3
cout<<"summa elementov posle pervogo otrizatelnogo =<<endl;
for (int i=0; i<N;i++)
cout<<otvet[i]<<endl;
Yandex
Объявления
28.03.2013, 15:48     Получить b1,…,bn, где bi – это сумма элементов, расположенных за первым отрицательным элементом в i-й строки
Ответ Создать тему
Опции темы

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