С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
#1

массивы, есть вопросик - C++

08.11.2010, 22:19. Просмотров 366. Ответов 4
Метки нет (Все метки)

вопрос по массивам. среда Visual C++. Есть код программы.
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
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
int main(void)
{
   const int N_MAX = 233;
   const int M_MAX = 70;
   bool flag;                   //замена в сортировке
   int i,b,k,l;                 //итераторы цикла
   char a[N_MAX];                  // основной массив содержащий все генерируемые символы
   char outk[M_MAX], outl[M_MAX];  // два вспомогательных массива содержащие буквы латинского алфавита
   time_t t;
/* генерация массива рандомными символами */   
 
   srand((unsigned) time(&t));
   for (i = 0; i < 233; i++){
       b = rand()%100 + 22;
       a[i] = (char)(b);
       cout << " " << a[i];
       }
   
   k = 0;  //итератор массива outk - гласных символов латинского алфавита
   l = 0;  //итератор массива outl - согласных символов латинского алфавита
 
 
   for (i = 0; i < N_MAX; i++){          
       b = (char)a[i];
       if ((b > 96) && (b < 123)){        //выбираем из массива a только строчные буквы латинского алфавита
 
           if ((a[i] == 'a') || (a[i] == 'e') || (a[i] == 'i') || (a[i] == 'o') || (a[i] == 'u') || (a[i] == 'y')){
               outk[k] = a[i];
               k++;
           } 
           else {
               outl[l] = a[i];
               l++;
           }
       }
   }
/* Пузырьковая сортировка обоих массивов */    
 
   flag = true;                             // сортировка массива согласных
   while (flag){                     
       flag = false;
       for (i = 0; i < M_MAX - 1; i++){
           if (outk[i] > outk[i + 1]){
               swap(outk[i],outk[i + 1]);   
               flag = true;                 // замена была
           }
       }
   }
 
   flag = true;                             // сортировка массива согласных
   while (flag){
       flag = false;
       for (i = 0; i < M_MAX - 1; i++){
           if (outl[i] > outl[i + 1]){
               swap(outl[i],outl[i + 1]);
               flag = true;                 // замена была
           }
       }
   }
 
/* Печать обоих массив на экран после сортировки */
 
   cout << endl;
   for (i = 0; i < M_MAX; i++){
       cout << outk[i];
   }
   cout << endl;
   for (i = 0; i < M_MAX; i++){
       cout << outl[i];
   }
 
   _getch();
   return 0;
}
Результат работы программы

p Q N ? : A 6 7 L  c 9 x  j G [ p p   b j N  V j V 6 w p $ ! \ H $ N g  I ] h T g H  n  F 5 ` 0 . M # S / 6 y " > H s l 3 U 7 \ ( - 7 R N 1 / . M G j 5 F i $ q o < F < ?  : F _ + 5 6  ) R  U  y d C O X f O J u e < s l p ; * j Y K  > < t c N b j / v   + !  T 5 < x  v  ' ` k $ + % T ?  c 9 4 #  A + 4   I ; G 0 ^ x d H V N N G \ s  . U = : a ] O f 7 \  =  [ i [ x % O ) 0 d F Q K F y .  q a B $ C ^ * V ) ( I U  3 = 2 _ ?   N . y p + < I
МММММММММММММММММММММММММММММММММММММММММММММММММММММММММММaaeiiouyyyy
ММММММММММММММММММММММММММММbbcccdddffgghjjjjjjkllnppppppqqssstvvwxxxx


вопрос откуда берутся символы M если я их не задаю? может от среды зависит?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2010, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массивы, есть вопросик (C++):

Есть ли в С++ динамические массивы? - C++
Я сначала подобный вопрос задал поисковой системе. Ответ меня обескуражил. Ответы примерно такие: 1. Нет и не было. 2. Кажется есть...

Небольшой вопросик - C++
Помогите ответить на вопрос, давно не ввлезал в си, а вот пришлось решать тест и я сел на этом вопросе. Если ключ доступа не указан явно...

Маленький вопросик - C++
public partial class Form1 : Form { float AnswerValue; float ScreenValue; string SumString; ...

маленький вопросик - C++
как выглядит блок схема....особенно интерисует к 1й строчке.. for(opMatr(),i=n;i&gt;=0;c0=aa,i--) //Обратный ход метода; ...

Не сложный вопросик!!! - C++
В базовом классе перегрузил operator&lt;&lt;, затем в производном переопределил. Как при использовании указать что бы выполнялся operator&lt;&lt; из...

Мааааленький такой вопросик - C++
Если у меня есть переменная V типа int и ей в цикле присваевается некоторое значение, то как я могу &quot;оградить&quot; себя и программу от того...

4
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
08.11.2010, 22:26 #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
/* Пузырьковая сортировка обоих массивов */    
 
   flag = true;                             // сортировка массива согласных
   while (flag){                     
           flag = false;
           for (i = 0; i < k - 1; i++){
                   if (outk[i] > outk[i + 1]){
                           swap(outk[i],outk[i + 1]);   
                           flag = true;                 // замена была
                   }
           }
   }
 
   flag = true;                             // сортировка массива согласных
   while (flag){
           flag = false;
           for (i = 0; i < l - 1; i++){
                   if (outl[i] > outl[i + 1]){
                           swap(outl[i],outl[i + 1]);
                           flag = true;                 // замена была
                   }
           }
   }
 
/* Печать обоих массив на экран после сортировки */
 
   cout << endl;
   for (i = 0; i < k; i++){
           cout << outk[i];
   }
   cout << endl;
   for (i = 0; i < l; i++){
           cout << outl[i];
   }
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.11.2010, 22:32  [ТС] #3
Crudelis я так и сделал, но просто интересно откуда берутся символы 'M'
1
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
08.11.2010, 22:38 #4
panicwassano, это пустые символы к-е записываются в массив, к-х нет, которые выходят за рамки k либо l в вашем случае

Добавлено через 3 минуты
попробуйте создать массив, не инициализировать его и вывести на экран, думаю станет понятнее
1
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.11.2010, 23:34  [ТС] #5
спасибо
1
08.11.2010, 23:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2010, 23:34
Привет! Вот еще темы с ответами:

маленький простенький вопросик... - C++
Здравствуйте ТоварисЧИ!!! есть маленький простенький вопросик по СИ: есть 2 функции func1, func2, в которых выполняется дофига других...

из Visual Basic в С++..маленький вопросик - C++
как Dim a As Double Dim b As Integer записать на с++???

Зачем нужны обычные массивы, если есть динамические? - C++
Всем привет! Вопрос в заголовке. Если динамический массив даёт те же и ещё больше функций и, при том, лучше обращается с памятью, зачем...

Одномерные Массивы. Решение уже есть. Переделать через функции. - C++
Помогите решить задачу по одномерному массиву ПО ФУНКЦИЯМ. Задачи уже решены, надо их переделать по функциям. 1. Найти номер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.