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

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

Восстановить пароль Регистрация
 
stasyano
0 / 0 / 1
Регистрация: 13.09.2009
Сообщений: 101
08.11.2009, 11:16     Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент #1
Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.

Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик.
две задачи в одной
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2009, 11:16     Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент
Посмотрите здесь:

C++ Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент
C++ Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент
Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент C++
Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент C++
Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.11.2009, 15:31     Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент #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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream.h>
#include <windows.h>
 
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int **mas, n, m, i, j, j_0=-1, har_str1, har_str2, temp, temp1;
    cout<<"Ââåäèòå êîëè÷åñòâî ñòðîê Г¬Г*Г±Г±ГЁГўГ*: "<< endl;
    cin>>n;
    cout<<"Ââåäèòå êîëè÷åñòâî ñòîëáöîâ Г¬Г*Г±Г±ГЁГўГ*: "<< endl;
    cin>>m;
    mas=new int*[n];
    for(i=0; i<n; i++)
        mas[i]=new int[m];
    cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*: "<< endl;
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
        {   
            cout<<"["<<i<<"]["<<j<<"]=";
            cin>>mas[i][j];
        }
    cout<<"ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў: "<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cout.width(4);
            cout<<mas[i][j]<<"   ";
        }
            cout<<endl;
    }
    // ïîèñê ñòîëáöГ* Г± Г*óëåâûì ýëåìåГ*òîì
    for(i=0; i<m && j_0==-1; i++)
    {
        for(j=0; j<n && j_0==-1; j++)
            if(mas[j][i]==0)
                j_0=i;
    }
    if(j_0!=-1)
        cout<<"ïåðâûé ñòîëáåö Гў êîòîðîì ГҐГ±ГІГј Г*óëåâîé ýëåìåГ*ГІ èìååò ГЁГ*äåêñ: "<<j_0<<endl;
    else
        cout<<"ñòîëáöîâ Г± ýëåìåГ*ГІГ*ìè Г°Г*ГўГ*ûìè Г*óëþ Г*ГҐГІ"<<endl;
    // ñîðòèðîâêГ* ГЇГ® ГµГ*Г°Г*êòåðèñòèêГ*Г¬
    for(i=0; i<n-1; i++)
        for(j=0; j<n-i-1; j++)
        {
            har_str1=har_str2=0;
            for(temp=0; temp<m; temp+=2)
            {
                if(mas[j][temp]<0)
                    har_str1+=mas[j][temp];
                if(mas[j+1][temp]<0)
                    har_str2+=mas[j+1][temp];
            }
            if(har_str1<har_str2)
                for(temp=0; temp<m; temp++)
                {
                    temp1=mas[j][temp];
                    mas[j][temp]=mas[j+1][temp];
                    mas[j+1][temp]=temp1;
                }
        }
    cout<<"Ïîëó÷åГ*Г*ûé Г¬Г*Г±Г±ГЁГў: "<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cout.width(5);
            cout<<mas[i][j]<<" ";
        }
            cout<<endl;
    }
           return 0; 
}
zhvaka
0 / 0 / 0
Регистрация: 29.01.2011
Сообщений: 40
03.05.2011, 01:03     Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент #3
Пожалуйста напишите код на Си, совсем не могу понять не зная языка что это, например {
cout.width(5);
cout<<mas[i][j]<<" "; }
Похожих задач у Вас на форуме масса, но абсолютное большинство на Си++, а переучиваться на него не владея стандартным Си как-то глупо
Хоть у меня задание сумма положительных чётных и возрастание характеристик, но с этим я думаю разберусь )
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.05.2011, 01:39     Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент #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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
 #include <malloc.h>
int main ()
{
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
        int **mas, n, m, i, j, j_0=-1, temp, *mas_tmp;
        printf("Введите количество строк массива:\n");
        scanf("%d", &n);
        printf("Введите количество столбцов массива:\n");
        scanf("%d", &m);
        mas_tmp=(int*) malloc(m*sizeof(int));
        mas=(int**) malloc(n*sizeof(int*));
        for(i=0; i<n; i++)
            mas[i]=(int*) malloc(m*sizeof(int));
        for(i=0; i<m; i++)
            mas_tmp[i]=0;
        printf("Введите элементы массива:\n");
        for(i=0; i<n; i++)
            for(j=0; j<m; j++)
            {   
                printf("[%d][%d]=", i, j);
                scanf("%d", &mas[i][j]);
                if(mas[i][j]>0 && mas[i][j]%2==0)
                    mas_tmp[j]+=mas[i][j];
            }
        printf("Исходный массив:\n");
        for(i=0; i<n; i++)
        {
            for(j=0; j<m; j++)
            {
                printf("%4d ", mas[i][j]);
            }
            printf("\n");
        }
        // поиск столбца с нулевым элементом
        for(i=0; i<m && j_0==-1; i++)
        {
            for(j=0; j<n && j_0==-1; j++)
                if(mas[j][i]==0)
                    j_0=i;
        }
        if(j_0!=-1)
            printf("первый столбец в котором есть нулевой элемент имеет индекс: %d\n", j_0);
        else
            printf("столбцов с элементами равными нулю нет\n");
        // сортировка по характеристикам
        for(i=0; i<m-1; i++)
        {
            int ind=i;
            for(j=i+1; j<m; j++)
                if(mas_tmp[j]<mas_tmp[ind])
                    ind=j;
            for(j=0; j<n; j++)
            {
                temp=mas[j][i]; mas[j][i]=mas[j][ind]; mas[j][ind]=temp;
            }
            temp=mas_tmp[i]; mas_tmp[i]=mas_tmp[ind]; mas_tmp[ind]=temp;
  
        }
        printf("Полученный массив:\n");
        for(i=0; i<n; i++)
        {
            for(j=0; j<m; j++)
            {
                printf("%5d ", mas[i][j]);
 
            }
            printf("\n");
        }
           return 0; 
}
Yandex
Объявления
03.05.2011, 01:39     Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент
Ответ Создать тему
Опции темы

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