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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ 2 решения на turboC http://www.cyberforum.ru/cpp-beginners/thread66300.html
1. Данно натуральное n. можно ли представить его в виде суммы трех квадратов натуральных чисел, если можно,то указать все представления n в виде суммы квадратов трех натуральных чисел... 2. Данны натуральные числа n и m. Получить все меньшие n натуральные числа, сумма кубов цифр которых равна м... Заранее всм спасибо...
C++ Исключения Помогите пожалуйста с программой, ибо чё-то не даётся мне этот try... catch . Собственно задача: Вычислите 1/х как число с плавающей точкой, обработайте возникшие сообщения об ошибке с использованием исключения. double reciprocal(double x); http://www.cyberforum.ru/cpp-beginners/thread66292.html
C++ Строки Си...
Помогите, пожалуйста с программой на Си, в программировании новичок. Описать строки A и B. Задать значение строки B. Из строки B переписать в строку A только цифры. Заранее Спасибо.
Задачник C++
Здравствуйте! Существует ли какой-нибудь задачник для начинающих? Какой учебник посоветуете для начинающего (именно по С++). Дома валяется Бьерн Страуструп, но, похоже, он не для начинающих. Спасибо!
C++ считывание строки из файла http://www.cyberforum.ru/cpp-beginners/thread66267.html
Помогите,пожалуйста,с программой. Необходимо считать из файла строку,удалить из неё предложение в скобках(включая скобки) и записать новую полученную строку в другой файл.
C++ матрицы на с++ Всем приветик. Помогите пожалуйста решить две задачи: 1. Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содеожащих хотя бы один нулевой элемент. 2. Характеристикой строки целочисленной матрицы назовем сумму её отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик. Только вот их надо сделать... подробнее

Показать сообщение отдельно
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
22.11.2009, 19:43
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
using namespace std;
int main()
{
    int matr[5][5], i, j;
    for(i = 0 ; i < 5; ++i)
        for(j = 0; j < 5; ++j)
            std::cin>>matr[i][j];
    for(j = 0 ; j < 5; ++j)
        for(i = 0; i < 5; ++i)
            if(matr[i][j] == 0)
                goto out;
    out:
    std::cout<<"Номер столбца равен "<<j;
    getch();
    return 0;
}
Добавлено через 1 минуту
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <windows.h>
#include <stdio.h>
 
//Проверяет содержит ли строка 
//нулевые элементы и возвращает их кол-во
int IsZeroInRow(int n, int * pRow);
 
//Выделяет из строки столбец iCol
//Возвращаемый результат указатель на данный столбец pCol
int * GetColumn(int m, int n, int iCol, int ** mass, int * pCol);
 
//Ищет последовательность одинаковых элементов 
//в столбце pCol, возвращаемое значеие макс число
//одинаковых элементов 
int GetSequence(int m, int * pCol);
 
int ** mass = (int **)malloc(sizeof(int));
//Содержит число одинаковых элементов в каждом столбце
int * pCol = (int *) malloc(sizeof(int));
 
void main()
{
        printf("Enter num of Rows : ");
        int m;scanf("%d",&m);
        printf("Enter num of Cols : ");
        int n;scanf("%d",&n);
 
        mass = (int **)realloc((void *)mass,sizeof(int)*m);
        pCol = (int *)realloc((void *)pCol,sizeof(int)*m);
 
        printf("\tEnter elements of massiv\r\n");
        for(int i = 0,nRows = 0,j;i < m; i++)
        {
                mass[i] = (int *)malloc(sizeof(int)*n);
                for(j = 0; j < n; j++)
                {
                        printf("mass[%d][%d] = ",i,j);
                        scanf("%d",&mass[i][j]);
                }
                if(IsZeroInRow(n, mass[i]))
                        nRows++;
        }
 
        int jmax  = 0;
        int nSame = 0;
        int iBuf  = 0;
        pCol =  GetColumn(m, n, jmax, mass, pCol);
        nSame = GetSequence(m, pCol);
        for(j = 1; j < n; j++)
        {
                pCol = GetColumn(m, n, j, mass, pCol);
                iBuf = GetSequence(m, pCol);
                if(nSame < iBuf)
                {
                        nSame = iBuf;
                        jmax  = j;
                }
        }
        printf("Num of Rows with zero elements : %d\r\n",nRows);
        printf("Column with max count of same elements : %d\r\n",jmax);
 
        mass = (int **)realloc((void *)mass,sizeof(int));
        pCol = (int *)realloc((void *)pCol,sizeof(int));
 
        printf("Press NUM1 to enter new massiv\r\n");
        scanf("%d",&iBuf);
        if(iBuf == 1)
                main();
        free(mass);
        free(pCol);
}
 
int IsZeroInRow(int n, int * pRow)
{
        int nCount = 0;
        if(pRow && 0 < n)
        {
                for(int i = 0; i < n; i++)
                {
                        if(pRow[i] == 0)
                                nCount++;
                }
        }
        return nCount;
}
 
int GetSequence(int m, int * pCol)
{
        int nSame = 0;
        if(pCol && 0 < m)
        {
                int iBuf = 1;
                int Elem = pCol[0];
                for(int i = 0,j; i < m; i++)
                {
                        iBuf = 1;
                        Elem = pCol[i];
                        for(j = i + 1; j < m; j++)
                        {
                                if(pCol[j] == Elem)
                                        iBuf++;
                        }
                        if(nSame < iBuf)
                                nSame = iBuf;
                }
        }
        return nSame;
}
 
int * GetColumn(int m, int n, int iCol, int ** mass, int * pCol)
{
        if(pCol && mass && iCol < n)
        {
                for(int i = 0; i < m; i++)
                        pCol[i] = mass[i][iCol];
        }
        return pCol;
}

Ах на С...
Код на С++.
Алгоритмы поймешь? Сможешь сам переделать?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru