0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 24
1

Работа с динамической памятью через указатели.

14.02.2012, 20:53. Показов 2607. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу в Microsoft Visual Studio ->Win32 Console application ->C++.
Есть такая задача:
Создать массив из N целых чисел, N вводит пользователь. Заполнить массив случайным образом в диапазоне от 1 до 12. Каждое число это оценка по 12-ти бальной системе. Перевести эти оценки в 5-ти бальную систему, где двойка от 1 до 3 включительно, тройка от 4 до 6, четверка от 7 до 9, пятерка от 10 до 12. Пользуясь указателем на массив целых чисел, посчитать процент двоек, троек, четверок и пятерок. Результат изобразить графически с помощью диаграммы, например:
2: **********
3: ********************
4: ****************************************
5: ******************************

В общем все понятно, но как с помощью указателя на массив почитать процент, и отобразить диаграммой!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2012, 20:53
Ответы с готовыми решениями:

Работа с динамической памятью через указатели. Загадочная ошибка.
Программа запускается и нормально исполняется, но в конце появляется ошибка. Мог бы кто подсказать...

Работа с динамической памятью через указатели. Загадочная ошибка.
Пишу в Microsoft Visual Studio ->Win32 Console application ->C++. Есть такая задача: Создать...

Разобраться в принципе работы задачч. (Работа с динамической памятью через указатели. )
Вот условие задачи: Создать массив из N целых чисел, N вводит пользователь. Заполнить массив...

Работа с динамической памятью. Ошибка в функции getline через посимвольный ввод
Было дано вот такое задание: В этой задаче вам необходимо написать функцию getline, которая...

3
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
14.02.2012, 21:28 2
Цитата Сообщение от Count Посмотреть сообщение
В общем все понятно, но как с помощью указателя на массив почитать процент
Не вижу связи с условием, если нужно отобразить в процентах сколько от n получило оценку 5, оценку 4 и т.д то нужно высчитывать самому же по школьному курсу математики.
0
6277 / 3562 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
14.02.2012, 21:34 3
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <algorithm>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int size;
    cout << "Size: ";
    cin >> size;
    int *array = new int[size];
    cout << "12nt ss:" << endl;
    for(int i = 0; i < size; i++)
    {
        array[i] = rand() % 12 + 1;
        cout << array[i] << " ";
        array[i] = array[i] >= 1 && array[i] <= 3 ? 2 :
                   (array[i] >= 4 && array[i] <= 6 ? 3 :
                   (array[i] >= 7 && array[i] <= 9 ? 4 : 5));
    }
    cout << endl << "5nt ss: " << endl;
    for(int i = 0; i < size; i++)
        cout << array[i] << " ";
    cout << endl;
    cout << "5: " << 100.0 * (float)count(array, array + size, 5) / (float)size << endl
         << "4: " << 100.0 * (float)count(array, array + size, 4) / (float)size << endl
         << "3: " << 100.0 * (float)count(array, array + size, 3) / (float)size << endl
         << "2: " << 100.0 * (float)count(array, array + size, 2) / (float)size << endl;
    delete [] array;
    return 0;
}
С диаграммами сами разберетесь.
1
6044 / 2159 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
14.02.2012, 22:25 4
Хорошенькая задача. Если правильно понял идею с указателем, то будет нечто наподобие:
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
#include<windows.h>
#include<time.h>
#include<iostream>
 
#define BAR_MAX 10  //число символов для отображения 100% на экране
 
using namespace std;
 
int main()
{
    int i;          //переменная цикла
    int N;          //количество элементов в массиве
    int *Marks;     //массив оценок
    int Twos=0;     //количество двоек
    int Threes=0;   //количество троек
    int Fours=0;    //количество четверок
    int Fives=0;    //количество пятерок
    int NumStars;   //количество * для отображения % на диаграмме
    srand(time(NULL));  
    cout<<"Enter number of elements:"<<endl;
    cin>>N;
    Marks=new int[N];   
    cout<<"Marks in the 12th system:"<<endl;
    //заполняем массив отметок числами от 1 до 12
    for(i=0;i<N;i++) 
    {
        Marks[i]=rand()%12+1;
        cout<<Marks[i]<<" ";
    }
    cout<<endl<<"Marks in the 5th system:"<<endl;
    //переводим в систему 1-5
    for(i=0;i<N;i++)
    {
        if((Marks[i]>=1)&&(Marks[i]<=3)) Marks[i]=2;
        else if((Marks[i]>=4)&&(Marks[i]<=6)) Marks[i]=3;
        else if((Marks[i]>=7)&&(Marks[i]<=9)) Marks[i]=4;
        else Marks[i]=5;
        cout<<Marks[i]<<" ";
    }
    cout<<endl; 
    //собираем статистику
    i=0;
    while(i<N)
    {
        switch(*Marks)
        {
            case 2: Twos++;break;
            case 3: Threes++;break;
            case 4: Fours++;break;
            case 5: Fives++;break;
        }
        Marks++;
        i++;
    }
    //рисуем диаграмму
    cout<<"2:";
    NumStars=Twos*BAR_MAX/N;
    for(i=0;i<NumStars;i++) cout<<"*";
    cout<<endl;
    cout<<"3:";
    NumStars=Threes*BAR_MAX/N;
    for(i=0;i<NumStars;i++) cout<<"*";
    cout<<endl;
    cout<<"4:";
    NumStars=Fours*BAR_MAX/N;
    for(i=0;i<NumStars;i++) cout<<"*";
    cout<<endl;
    cout<<"5:";
    NumStars=Fives*BAR_MAX/N;
    for(i=0;i<NumStars;i++) cout<<"*";
    cout<<endl; 
    getchar();
    delete []Marks;
    return 0;
}
1
14.02.2012, 22:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2012, 22:25
Помогаю со студенческими работами здесь

Работа с динамической памятью
Корректно ли организованна работа с памятью? Функция workWith2DArray осуществляет некоторую работу,...

Работа с динамической памятью!
Привет! Такая задача: Необходимо выделить(по N Кб) и освободить всю динамическую память. Определить...

Работа с динамической памятью
Привет всем. Я недавно начал изучать C++ и наткнулся на ошибку:&quot;двумерный динам.exe вызвал...

Работа с динамической памятью
Всем привет! Начинающий программист(около нескольких недель), сейчас пишу программы чисто для себя,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru