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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
#1

Рассчитать, сколько элементов массива могли бы быть корректно представлены типом char - C++

08.05.2011, 18:06. Просмотров 1426. Ответов 1
Метки нет (Все метки)

С клавиатуры вводится размерность динамического массива целых. После этого в программе необходимо создать указанный динамический массив, заполнить его числами с клавиатуры и выполнить следующие действия:
а) рассчитать, сколько элементов массива могли бы быть корректно представлены типом char;
б) поменять местами элементы массива, симметричные (по значению индекса) относительно среднего элемента;
в) вывести элементы массива в порядке убывания;
г) построить второй динамический массив, который необходимо (без лишних затрат динамической памяти) заполнить только отрицательными элементами первого массива.

Подскажите почему не работает пункт б. меняет только крайние элементы...
как исправить. Прикладываю код который получился
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
#include "stdlib.h"
#include "malloc.h"
#include "stdio.h"
#include <iostream>
#include <iomanip>
 
using namespace std;
int main()
{
 int o;
 int *a;
 int *b;
 int i, n;
 std::cout<<"Enter n: ";
 std::cin>>n;
 a=(int*) malloc(n*sizeof(int));
 b=(int*) malloc(n*sizeof(int));
 for (i=0;i<n;i++)
 {
  std::cout<<"Vvedi a[i] ";
  std::cin>>a[i];
 }
 for (i=0;i<n;i++)
 {
 cout<<" "<<a[i];
 }
 cout << endl;
 for (i=0;i<n;i++)
 {
 b[i]=a[i]*(-1);
 cout<<" "<<b[i];
 }
 cout << endl;
   /*пузырьковая сортировка по убыванию*/
  /*for (int i = 0; i<n-1; ++i){
        int tmp = 0;
        for (int j=(i+1); j<n; ++j)
            if (a[i]<a[j]) {
                tmp = a[i];
                a[i] = a[j];
                a[j] = tmp;        
                }
    }
    for (int i = 0; i < n; ++i)
    cout<<" "<<a[i];
    cout << endl;*/
    //подсчёт количества чисел типа чар
    o=0;
    for (int i = 0; i < n; i++)
    if (a[i]<9)
    o++;
    cout<<o;
    cout << endl;
    //перемещение симметричных??? Подскажите почему?
    int l;
    for (int i = 0; i<n-1; i++)   
        {l = a[i];
        a[i] = a[n-1-i];
        a[n-1-i] = l;
         } 
    for (int i = 0; i < n; i++)
    cout<<" "<<a[i];                
system("PAUSE");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2011, 18:06     Рассчитать, сколько элементов массива могли бы быть корректно представлены типом char
Посмотрите здесь:
Передача массива Char в функцию. Как быть? C++
Преобразовать массив с типом char в массив с типом int C++
C++ Работа с типом char
C++ Ошибка с типом char
C++ Строки с типом char * в С++
Проверка условия, чтобы числа могли быть введены только в определенном диапазоне C++
C++ Действия над типом Char
Как перегрузить поле с типом Char C++
вывод слова на экран с типом char. C++
C++ Функции для работы с типом char*
C++ Не работает шаблонная функция с типом char
Что делать с типом unsined char? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
09.05.2011, 12:13     Рассчитать, сколько элементов массива могли бы быть корректно представлены типом char #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от cooller51190555 Посмотреть сообщение
б) поменять местами элементы массива, симметричные (по значению индекса) относительно среднего элемента;
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int i,n;
    cout<<"  N=";
    cin>>n;
    int* a=new int[n];
    cout<<"  Enter elements: ";
    for(i=0;i<n;i++) cin>>a[i];
    for(i=0;i<n/2;i++)   
    {
       int k=a[i];
       a[i]=a[n-1-i];
       a[n-1-i]=k;
    } 
    cout<<"  Result: ";
    for(i = 0;i<n;i++) cout<<a[i]<<" ";  
    delete []a; 
    cout<<endl;             
    system("pause");
    return 1;
}
Ответ Создать тему
Опции темы

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