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

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

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

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

08.05.2011, 18:06. Просмотров 1416. Ответов 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
Посмотрите здесь:

C++ Действия над типом Char
вывод слова на экран с типом char. C++
C++ Не работает шаблонная функция с типом char
C++ Строки с типом char * в С++
Как перегрузить поле с типом Char C++
Перевод в систему счисления числа с типом char C++
Преобразовать массив с типом char в массив с типом int C++
Передача массива Char в функцию. Как быть? C++
C++ Работа с типом char
Структурка (удалить данные с типом char) C++
Проверка условия, чтобы числа могли быть введены только в определенном диапазоне C++
C++ Функции для работы с типом char*

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-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;
}
Yandex
Объявления
09.05.2011, 12:13     Рассчитать, сколько элементов массива могли бы быть корректно представлены типом char
Ответ Создать тему
Опции темы

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