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

Двемерные числа. Особые эл-ты - C++

Восстановить пароль Регистрация
 
JuneMelon
0 / 0 / 0
Регистрация: 01.09.2010
Сообщений: 43
01.02.2011, 20:41     Двемерные числа. Особые эл-ты #1
Помогите пожалуйста с задачей.
Дан двумерный массив A[i][j]. Ввести k-кол-во особых элементов.Особые элементы это те, которые больше суммы других эл-ов в столбце.
Не знаю даже с чего и начать в принципе, думаю с начала надо максимумы столбцов найти, затем проверить больше ли каждый из них по сравнению с суммой других элементов в столбце...
помогите...

Добавлено через 35 минут
Двумерные массивы* извиняюсь\
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2011, 20:41     Двемерные числа. Особые эл-ты
Посмотрите здесь:

Даны два целых числа A и B (A < B). Вывести в порядке убывания все це-лые числа, расположенные между A и B (не включая числа A и B), а также количеств C++
Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать C++
C++ От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно
C++ Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?
C++ Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
manfeese
 Аватар для manfeese
128 / 127 / 16
Регистрация: 04.01.2009
Сообщений: 415
01.02.2011, 21:09     Двемерные числа. Особые эл-ты #2
C++
1
2
3
4
5
6
7
8
int Count = 0;
for (int j = 0; j < 3; j++)
{
    int Sum = 0;
    for (int i = 0; i < 3; i++) Sum += Massiv[i][j];
    for (int i = 0; i < 3; i++) if (2*Massiv[i][j] > Sum) Count++;
}
cout<<Count;
JuneMelon
0 / 0 / 0
Регистрация: 01.09.2010
Сообщений: 43
01.02.2011, 22:37  [ТС]     Двемерные числа. Особые эл-ты #3
Цитата Сообщение от manfeese Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int Count = 0;
for (int j = 0; j < 3; j++)
{
    int Sum = 0;
    for (int i = 0; i < 3; i++) Sum += Massiv[i][j];
    for (int i = 0; i < 3; i++) if (2*Massiv[i][j] > Sum) Count++;
}
cout<<Count;
что-то она не работает...
Вот например тест:
Вх. Данные: n=3 ,m=3
p[i][j]= 1 3 4
2 11 5
10 4 13
Вых. Данные: k=3(10,11,13)

Добавлено через 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
54
55
56
57
58
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
 
int main()
{
 int i,j,n,max,m,k,*sum;
 int **p=new int *[n];
 
 cout<<"Vvedite kol-vo strok: ";
 cin>>n;
 cout<<"Vvedite kol-vo stolbcov: ";
 cin>>m;
 sum=new int[m];
 cout<<"Vvedite el-ti massiva: ";
//выделение памяти под строки
 for(i=0;i<n;i++)
  p[i]=new int[m];
//ввод массива
 for(i=0;i<n;i++)
 {
  for(j=0;j<m;j++)
  cin>>p[i][j];
 }
//вывод массива
 cout<<"Vivod el-ov massiva: "<<endl;
 for(i=0;i<n;i++)
 {
  cout<<endl;
  for(j=0;j<m;j++)
  cout<<setw(4)<<p[i][j];
 }
 cout<<endl;
//обработка массива
 for(j=0;j<m;j++)
 {
  sum[j]=0;
  for(i=0;i<n;i--)
  sum[j]=sum[j]+p[i][j];
 }
 
 for(j=0;j<0;j++)
 {
  k=0;
  for(i=0;i<n;i++)
  {
   if (p[i][j]>(sum[j]-p[i][j])) k=k+1;
  }
  cout<<"Stolbec "<<j+1<<" k= "<<k<<" sum="<<sum<<endl;
 }
//освобождение динамической памяти
 for(i=0;i<n;i++)
 delete[]p[i];
 delete[]p;
 delete(p);
 getch();
 return(0);
}
здесь ввод, вывод и обработка в обработке, помогите подкорректировать(подправить), не вычисляет почему-то k-кол-во особых эл-ов, что такое особые эл-ты писал вверху

Добавлено через 1 час 0 минут
ну вы же должны знать...=(
manfeese
 Аватар для manfeese
128 / 127 / 16
Регистрация: 04.01.2009
Сообщений: 415
01.02.2011, 23:12     Двемерные числа. Особые эл-ты #4
Цитата Сообщение от JuneMelon Посмотреть сообщение
что-то она не работает...
Вот например тест:
Вх. Данные: n=3 ,m=3
p[i][j]= 1 3 4
2 11 5
10 4 13
Вых. Данные: k=3(10,11,13)
И что же тут неправильно? главное алгоритм уловить!
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
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
 
int main()
{
 
    int Massiv[3][3] =  {1,3,4,
                2,11,5,
                10,4,13};
    int chisla[9];
 
    int Count = 0;
    for (int j = 0; j < 3; j++)
    {
        int Sum = 0;
        for (int i = 0; i < 3; i++) Sum += Massiv[i][j];
        for (int i = 0; i < 3; i++) if (2*Massiv[i][j] > Sum) chisla[Count++] = Massiv[i][j];
    }
    cout<<"k="<<Count<<"(";
    for (int i = 0; i < Count; i++) cout<<chisla[i]<<",";
    cout<<")";
    getch();
    return 0;
}
//---------------------------------------------------------------------------
JuneMelon
0 / 0 / 0
Регистрация: 01.09.2010
Сообщений: 43
01.02.2011, 23:37  [ТС]     Двемерные числа. Особые эл-ты #5
а как быть если строк больше чем столбцов?
он ошибку выдает...
manfeese
 Аватар для manfeese
128 / 127 / 16
Регистрация: 04.01.2009
Сообщений: 415
02.02.2011, 14:45     Двемерные числа. Особые эл-ты #6
Неужели так сложно догадаться исправить индексы в циклах?!

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
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
 
int main()
{
        const n = 3;  //количество строк
        const m = 3; //количество столбцов
 
        int Massiv[n][m] =      {1,3,4,
                                2,11,5,
                                10,4,13};
        int chisla[n*m];
 
        int Count = 0;
        for (int j = 0; j < m; j++)
        {
                int Sum = 0;
                for (int i = 0; i < n; i++)     Sum += Massiv[i][j];
                for (int i = 0; i < n; i++)     if (2*Massiv[i][j] > Sum) chisla[Count++] = Massiv[i][j];
        }
        cout<<"k="<<Count<<"(";
        for (int i = 0; i < Count; i++) cout<<chisla[i]<<",";
        cout<<")";
        getch();
        return 0;
}
//---------------------------------------------------------------------------
Yandex
Объявления
02.02.2011, 14:45     Двемерные числа. Особые эл-ты
Ответ Создать тему
Опции темы

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