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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
08.05.2011, 18:06     Рассчитать, сколько элементов массива могли бы быть корректно представлены типом char #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
C++ Не работает шаблонная функция с типом char
C++ Строки с типом char * в С++
Преобразовать массив с типом char в массив с типом int C++
Передача массива Char в функцию. Как быть? C++
C++ Работа с типом char
Структурка (удалить данные с типом char) C++
Проверка условия, чтобы числа могли быть введены только в определенном диапазоне 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;
}
Yandex
Объявления
09.05.2011, 12:13     Рассчитать, сколько элементов массива могли бы быть корректно представлены типом char
Ответ Создать тему
Опции темы

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