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

Максимальный елемент массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ BSCMAKE: error BK1506 : cannot open file '.\Debug\RESDlg.sbr': No such file or directory http://www.cyberforum.ru/cpp-beginners/thread35829.html
--------------------Configuration: RES - Win32 Debug-------------------- Compiling... RESDlg.cpp c:\program files\microsoft visual studio\myprojects\res\resdlg.cpp(197) : fatal error C1010: unexpected end of file while looking for precompiled header directive Error executing cl.exe. RESDlg.obj - 1 error(s), 0 warning(s) Добавлено через 15 минут 37 секунд и ещё вторую пж
C++ Задача по одномерному массиву Всем привет. Помогите пожалуйста написать программу для с++ нужно осуществить: 1.ввод символьного массива от 40 до 60 2.подсчёт кол-ва элементов массива и вывод его на экран 3.нахождение количества рядомстоящих элементов, например ab, и вывод количества повторений на экран к сожалению немогу составить даже начало программы =( Добавлено через 13 часов 35 минут 7 секунд Получилось кое-как... http://www.cyberforum.ru/cpp-beginners/thread35802.html
C++ Структура, координаты точек, расстояние между ними.
Доброе время суток. Если можете, помогите найти ошибку. Заранее благодарю. Задача. Найти такую точку пространства, сумма расстояний от которой которой до остальных точек множества минимальна. #include <iostream> #include <cmath>
Работа с mailslot C++
У меня такой вопрос возник... вот в описании Почтовых ящиков (mailslot) написано: "Почтовые ящики обеспечивают только однонаправленные соединения. Каждый процесс, который создаёт почтовый ящик, является "сервером почтовых ящиков" (mailslot server). Другие процессы, называемые "клиентами почтовых ящиков" (mailslot client), посылают сообщения серверу, записывая их в почтовый ящик. Каждый процесс...
C++ Как убрать курсор в программе. http://www.cyberforum.ru/cpp-beginners/thread35795.html
Как убрать курсор в программе. Собственно помогите)
C++ работа в консоли С++ Имеется массив. ОС - Win XP, работаю на платформе Visual C++6, в консоли, результат получаю в командной строке. Как получить результат в виде текстового файла, чтобы можно было его распечатать? #include <iostream.h> #include <iomanip.h> main() { подробнее

Показать сообщение отдельно
Vistar
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 8
23.05.2009, 13:56  [ТС]     Максимальный елемент массива
C++
1
2
3
4
5
6
7
if ((i == j) && (mas[i][j] < 0))
            {
            for (int b = 0; b < n; b++)
               {
               mas_new[i][j] = mas[i][b];
               }
            }
Эта конструкция записывает в отдельный массив строки в которых елементы на главной диагонали меньше 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <fstream.h>
#include <stdio.h>
#include <string.h>
 
#define NMAX 10
 
int** generate(int& n); // функция генерирования елементов матрицы с помощью rand
void print(int **mas, int n); // печать матрицы на экран
void print_to_file(int **mas,int n); // печать матрицы в файл
int** enter(int &n); // ввод елементов матрицы с клавиатуры
int** from_file(int &n); // считывание елементов матрицы с файла
void sum_of_all(int **mas,int n); // находит сумму всех елементов тех строк, в которых елемент стоящий на главной диагонали меньше 0
void large_num(int **mas,int n); // находит найбольший елемент из всех елементов тех строк, в которых елемент стоящий на главной диагонали меньше 0
 
int main()
{
   int **mas, n=NMAX;
   int ch;
   clrscr();
 
   do
   {
      cout << "Ввести с помощью клавиатуры: (1)\n";
      cout << "Сгенерировать число с помощью процедуры random (2)\n";
      cout << "Записать в файл сгенерированую матрицу (3)\n";
      cout << "Взять матрицу с файла (4)\n";
      cout << "Вывести матрицу на экран (5)\n";
      cout << "Показать максимальное число (6)\n";
      cout << "Показать сумму елементов (7)\n";
      cout << "Выход (0)\n";
      cout << "\nEnter you choise: ";
      cin >> ch;
      if (ch > 7)
      {
     cout << "Error! You enter wrong key. Please, retry.\n\n";
     continue;
      }
 
      switch(ch)
      {
     case 0: {exit; break;}
     case 1: {mas = enter(n); break;}
     case 2: {mas = generate(n); break;}
     case 3: {print_to_file(mas,n); break;}
     case 4: {mas = from_file(n); break;}
     case 5: {print(mas,n); break;}
     case 6: {large_num(mas,n); break;}
     case 7: {sum_of_all(mas,n); break;}
      }
   }
   while (ch != 0);
 
for(int i=0; i<n; i++)
   delete[] mas[i];
   delete[] mas;
return 0;
}
 
 
int** generate(int &n)
{
   int **mas = new int*[NMAX];
   for(int i=0; i<NMAX; i++)
   mas[i] = new int[NMAX];
   n = NMAX;
   srand(time(NULL));
   for (i = 0; i < n; i++)
   {
      for (int j = 0; j < n; j++)
      {
     mas[i][j] = 20 - rand() % 25;
      }
   }
return mas;
}
 
 
int** enter(int &n)
{
   int **mas = new int*[NMAX];
   for(int i=0; i<NMAX; i++)
   mas[i] = new int[NMAX];
   n = NMAX;
   for (i = 0; i < n; i++)
   {
      for (int j = 0; j < n; j++)
      {
     cout << "Enter " << i << " " << j << " element: ";
     cin >> mas[i][j];
      }
      cout << endl << endl;
   }
   return mas;
}
 
 
int** from_file(int &n)
{
   int **mas = new int*[n];
   for(int i=0; i<n; i++)
   mas[i] = new int[n];
   int k;
   FILE *L = fopen("D:\\lab5.dat", "rb");
   n = NMAX;
   for (i = 0; i < n; i++)
   {
      for (int j = 0; j < n; j++)
      {
     fread(&k, sizeof(k), 1, L);
     mas[i][j] = k;
      }
      cout << endl << endl;
   }
   return mas;
}
 
 
void print(int **mas, int n)
{
   for (int i = 0; i < n; i++)
      {
      for (int j = 0; j < n; j++)
     {
     cout << "  " << mas[i][j];
     }
      cout << endl << endl;
      }
}
 
 
void print_to_file(int **mas, int n)
{
   FILE *h = fopen("D:\\Lab5.dat", "wb");
   char* txt = "\n\n";
 
   for (int i = 0; i < n; i++)
      {
      for (int j = 0; j < n; j++)
     {
     fwrite(&mas[i][j], sizeof(mas), 1, h);
     }
 fwrite(txt, strlen(txt), 1, h);
      }
}
 
 
void sum_of_all(int **mas,int n)
{
   int sum = 0;
 
   for (int i = 0; i < n; i++)
      {
      for (int j = 1; j < n; j++)
     {
     if ((i == j) && (mas[i][j] < 0))
        {
        for (int b =0; b < 10; b++)
           {
           sum += mas[i][b];
           }
        }
     }
      }
   cout << "Summ is: " << sum << endl;
}
 
 
void large_num(int **mas, int n)
{
   int **mas_new = new int*[n];
   for(int i=0; i<n; i++)
   mas_new[i] = new int[n];
   for (i = 0; i < n; i++)
   {
      for (int j = 0; j < n; j++)
      {
     if ((i == j) && (mas[i][j] < 0))
     {
        for (int b = 0; b < n; b++)
        {
           mas_new[i][j] = mas[i][b];
        }
     }
      }
   }
 
 
   int max = mas_new[0][0];
   for (int m = 0; m < n; m++)
   {
      for (int k = 0; k < n; k++)
      {
     if (mas_new[m][k] > max)
     {
        max = mas_new[m][k];
     }
      }
   }
   cout << "max: " << max << endl;
 
for(i = 0; i<n; i++)
 delete[] mas_new[i];
 delete[] mas_new;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru