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

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

Восстановить пароль Регистрация
 
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.11.2010, 22:19     массивы, есть вопросик #1
вопрос по массивам. среда 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 если я их не задаю? может от среды зависит?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2010, 22:19     массивы, есть вопросик
Посмотрите здесь:

C++ Небольшой вопросик
Не сложный вопросик!!! C++
C++ Маленький вопросик
C++ маленький простенький вопросик...
Мааааленький такой вопросик C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 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];
   }
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.11.2010, 22:32  [ТС]     массивы, есть вопросик #3
Crudelis я так и сделал, но просто интересно откуда берутся символы 'M'
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
08.11.2010, 22:38     массивы, есть вопросик #4
panicwassano, это пустые символы к-е записываются в массив, к-х нет, которые выходят за рамки k либо l в вашем случае

Добавлено через 3 минуты
попробуйте создать массив, не инициализировать его и вывести на экран, думаю станет понятнее
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.11.2010, 23:34  [ТС]     массивы, есть вопросик #5
спасибо
Yandex
Объявления
08.11.2010, 23:34     массивы, есть вопросик
Ответ Создать тему
Опции темы

Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru