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

Матрицы. нулевые и одинаковые строки. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Считывание и запись в файл http://www.cyberforum.ru/cpp-beginners/thread107311.html
решил задачу на с, го её нужно перевести на с++. у меня возникли проблемы с считыванием и записью в файл. помогите пожалуйста! Вот код на С : #include <stdio.h> #include <math.h> main () { int a,i,n,p=0,d,t; freopen ( "input.txt", "r", stdin ); freopen ( "output.txt", "w", stdout ); scanf ( "%d", &n );
C++ Циклы в Си++, хотелось бы уточнить некоторые моменты Начинаю изучать Си, учусь по самоучителю при отсутствии знакомых и друзей программистов, пройдя главу про циклы так и не смог уяснить для себя в каких ситуациях и как правильно выбрать тот или иной вид цикла(for, while, do while). Если кого то не затруднит прошу объяснить,по возможности с примерами, заранее благодарю. http://www.cyberforum.ru/cpp-beginners/thread107296.html
Элементы главной диагонали C++
Дана действительная квадратная матрица 5х5, все элементы которой различны. Найти наименьший элемент среди стоящих на главной диагонали и поменять его местами с элементом стоящим в правом нижнем углу матрицы. Вот наброски. Помогите дописать прогу, а именно, надо теперь поменять местами минимальный элемент диагонали с элементомв правом нижнем углу и если есть ошибки исправить )) #include...
Конструктор - копировщик: ошибка C++
при таком кодеclass cat{ public: cat(); ~cat(); cat(cat&); }; cat::cat(){ cout<<"Cat constructor"<<endl; }
C++ Масcив http://www.cyberforum.ru/cpp-beginners/thread107234.html
1. Дан целочисленный линейный массив из 10 элементов. Найдите наименьшее число K элементов, которое нужно исключить из последовательности A, A,…,A, чтобы осталась возрастающая последовательность. 2. Составьте программу вычисления суммы элементов от первого отрицательного и до конца.
C++ Не могу задать массив 1000х1000 Помогите, плз, найти ошибку или решение. Нужно задать массив размера не меньше 1000х1000 случайными числами. Составляю программку: #include <iostream> using namespace std; int main() подробнее

Показать сообщение отдельно
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.03.2010, 11:32
Индексы строк начинаются с 0.
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
#include <iostream.h>
//Описание узла стека:
struct Node {
int n_str;
Node *pnext;
};
 
//----------------------------------------------------------------------
int push(Node **top, int index); //положить на вершину стека
int pop(Node **top);             //выборка  из стека
int print(Node *top);            //показать значения стека
int Update(Node **top);          //полное освобождение памяти из под стека.
//----------------------------------------------------------------------
 
 
//Клиент:
int main(){
 
const int H = 5;
const int W = 5;
int matrix[H][W] = {
    {1,1,1,1,1},
    {5,5,5,5,5},
    {0,0,0,0,0},
    {1,1,1,1,1},
    {0,0,0,0,0}
 
};
Node *top_Null_str = NULL;   //используется для хранения номеров строк со всеми 0
Node *top_Equal_str = NULL;  //для хранения номеров строк где все элементы равны.
 
//Рабочая часть:
for( int i = 0 ; i < H ; i++ ){  
         int count_n = 0;
         int count_e = 0;
 
             for( int j = 0 ; j < W; j++ ) {
 
         if(matrix[i][0]==matrix[i][j]&&(matrix[i][j]!=0))count_e++;
                 if(matrix[i][j]==0)count_n++;
 
             }
 
             if(count_n == W)push(&top_Null_str,i);
             if(count_e == W)push(&top_Equal_str,i);
 
}
 
 
//-------------------------
cout<<"Null str  \n"; print(top_Null_str);
cout<<"Equal str \n"; print(top_Equal_str);
 
 
 
 
//-------------------------
Update(&top_Null_str);
Update(&top_Equal_str);
//-------------------------
return 0;
}
 
int push(Node **top, int index){
//Если формируем первый элемент.
if((*top)==NULL){
Node * pv = new Node ;
pv->n_str = index;
pv->pnext = NULL;
(*top)=pv;
return 0;
}
 
//Иначе добавляем на вершину.
else {            
Node * pv = new Node ;
pv->n_str = index;
pv->pnext = (*top);
(*top)= pv;
return 0;
}
 
return 0;
 
 
}
 
 
//выборка  из стека
int pop(Node **top){
Node *tmp = (*top);
if(tmp){
int str = tmp->n_str;
(*top)=(*top)->pnext;
delete tmp;
return str;
}
 
return 0;
}
 
//показать значения стека
int print(Node *top){   
while(top){
cout<<"Number_str "<<top->n_str<<'\n';
top = top->pnext;
}
cout<<'\n';
return 0;
}
int Update(Node **top){ 
    while((*top)){
    pop(top);
}
    
    return 0; 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru