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

Проверить два идущих подряд нуля в массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Файл со строками http://www.cyberforum.ru/cpp-beginners/thread1041665.html
Дан текстовый файл. Переписать в новый файл все его строки, длина которых больше заданного числа. Входной файл «1.txt» содержит строковые словосочетания. То есть нужно со строками работать? Или как,не понимаю...
C++ Дано натуральное четырехзначное число. Определить все цифры в цифровой записи данного числа, на которые оно делится без остатка Дано натуральное четырехзначное число. Определить все цифры в цифровой записи данного числа, на которые оно делится без остатка. Формат входных данных Входной файл содержит натуральное четырехзначное число. Формат выходных данных Вывести количество таких цифр, а далее вывести сами цифры в порядке возрастания без повторений. Пример: Вход http://www.cyberforum.ru/cpp-beginners/thread1041658.html
Сумма ряда C++
помогите решить такую задачу y=1+x/1!+x^2/2!+...+x^n/n! короче мудрил мудрил в итоге получил так но всеравно неправильно! #include <iostream.h> #include <conio.h> #include <cmath.h> void main() { float p, y, n, i, x ; cout<<"Vvedite n = "; cin>>n; cout<<"Vvedite x = ";
Слияние двух массивов C++
Всем привет. Возникла проблема с задачей. Даны два массива одинакоого размера. Нужно создать 3 массив который будет хранить элементы первого и второго массива. Проблема в том что первый массив у меня передается в 3 массив, а все элементы 2 массива почему то равны первому элементу(тоесть счетчик j не инкрементируется)вот ф-ция которая должна соединить 2 массива void merge(int arr,int arr1,int...
C++ Массивы и строки http://www.cyberforum.ru/cpp-beginners/thread1041596.html
Помогите пожалуйста написать программу в visual studio 2005.Само задание:Написать программу коротая вводит с клавиатуры массив из 10 целых чисел,считает количество положительных элементов массива и выводит результат пользователю;затем вводит с клавиатуры строку длинной не более 20 символов,считает количество символов "а" и выводит результат пользователю.Заранее спасибо.
 

Показать сообщение отдельно
ZeR_0
116 / 108 / 37
Регистрация: 30.01.2013
Сообщений: 297
15.12.2013, 01:23     Проверить два идущих подряд нуля в массиве
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
#include <iostream>
using namespace std;
 
void main(){
    setlocale(LC_ALL,"rus");
 
    int **array_a; //Массив А
    int **array_b; //Массив В
 
    int line;   //Строки
    int column; //Столбцы
 
    //Получаем размер массива А
    cout<<"Введите размер матрицы: ";
    cin>>line>>column;
 
    //Выделяем память для А
    array_a = new int*[line];
    for(int i = 0; i < line; i++)
        array_a[i] = new int[column];
 
    //Выделяем память для B (столько же сколько и под В)
    array_b = new int*[line];
    for(int i = 0; i < line; i++)
        array_b[i] = new int[column];
 
    //Заполняем А
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            cin>>array_a[i][j];
        }
    }
 
    //Выводим массив А
    cout<<"Матрица A:"<<endl;
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            cout<<array_a[i][j]<<" ";
        }
        cout<<endl;
    }
 
    //Индексы для нового массива
    int b_i = 0;
    int b_j = 0;
 
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            //Если нашли элемент равный 0
            if(array_a[i][j] == 0){
                //Проверяем стоит ли он в конце строки
                if(j == column - 1){
                    //Если да, то стоит ли он в конце столбца
                    if(i != line - 1){
                        //Если не в конце столбца, то проверяем элемент стоящий на 1 позиции на следующей строке
                        if(array_a[i+1][0] == 0){
                            //Если он равен 0, то просто изменяем индексы
                            i++;
                            j = 0;
                            //Если не равен, то заносим элемент i,j во второй массив
                        } else {
                            array_b[b_i][b_j] = array_a[i][j];
                            b_j++;
                            //Думаю не стоит объяснять
                            if(b_j == column){
                                b_i++;
                                b_j = 0;
                            }
                        }
                        //Если элемент i,j стоит в конце столбца и строки, то просто добавляем его в массив
                    } else {
                        array_b[b_i][b_j] = array_a[i][j];
                    }
                    //Если элемент i,j стоит не в конце строки, то проверяем следующий за ним элемент
                } else if(array_a[i][j+1] == 0)
                    //Если он равен 0, то просто изменяем индекс
                    j++;
                //Если i,j стоит не в конце строки и следующий за ним элемент не равен 0
                //то добавляем элемент i,j в массив
                else {
                    array_b[b_i][b_j] = array_a[i][j];
                    b_j++;
                    if(b_j == column){
                        b_i++;
                        b_j = 0;
                    }
                }
            //Если элемент i,j не равен 0, то просто добавляем его в массив
            } else {
                array_b[b_i][b_j] = array_a[i][j];
                b_j++;
                if(b_j == column){
                    b_i++;
                    b_j = 0;
                }
            }
        }
    }
 
    //Выводим массив В
    cout<<endl<<"Матрица B:"<<endl;
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            cout<<array_b[i][j]<<" ";
        }
        cout<<endl;
    }
}
Вот такое вот чудо. Моей целью, конечно, не было написать по короче.
Добавил по максимуму комментариев, чтобы было понятней.
 
Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru