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

Добавление в программу указателей

25.09.2014, 22:39. Показов 459. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо в этом коде использовать указатели. Начал изучать указатели, не знаю где применить.
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
#include <clx.h>
#pragma hdrstop
#include "windows.h"
//---------------------------------------------------------------------------
#include <stdio.h>
#pragma argsused
typedef float MS[20];
 
MS m;
int N;
 
void vvod_mas(MS A, int n)
{ int i, k=1;
  for(i=0;i<n;i++)
  {   printf("Ââåäèòå %i-îå ÷èñëî:",k);
      scanf("%f",&A[i]);k++;
 }}
 
void viv_mas(MS A, int n)
{ int i;
  for(i=0;i<n;i++)
  {   printf("%.2f ",A[i]);
   }}
 
 void sor_mas (MS A, int n)
 { int i, j=0; float ji;
   for(i=1;i<n;i++)
      for(j=0;j<n;j++)
        if(A[j]>=2)
    { ji=A[i]; A[i]=A[j]; A[j]=ji; }
 
  printf("\nÏîëó÷åííûé ìàññèâ: \n");
      viv_mas(A,n);
 }
 
int main(int argc, char* argv[])
{ SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
 
 printf("Ââåñòè ðàçìåð ìàññèâà 0õN: ");
 scanf("%d",&N);
     vvod_mas(m,N);
     printf("\nÂâåäåííûé ìàññèâ 0õN:\n");
     viv_mas(m,N);
     sor_mas(m,N);
 
     printf("\n\n");
     system("pause");
        return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2014, 22:39
Ответы с готовыми решениями:

Добавление нового указателя в конец массива указателей, удаление указанного элемента, добавление указателей
Здравствуйте. Помогите, пожалуйста, разобраться с одним большим заданием. Задание пока в процессе...

QSet. Добавление указателей на значение
Доброго времени суток. Программирую под Qt 4.7, поэтому возник вопрос по использованию QSet. При...

Переделать программу с использованием указателей
Помогите переделать программу под указатели: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

Переписать программу с использованием указателей
Всем привет, написал программу теперь нужно сделать его с помощью указателей. помогите пожалуйста ...

4
19 / 19 / 14
Регистрация: 23.09.2014
Сообщений: 117
25.09.2014, 23:21 2
Цитата Сообщение от bomx18 Посмотреть сообщение
typedef float MS[20];
Вместо этого, используй динамический массив.
1
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 10
28.09.2014, 00:55  [ТС] 3
Показалось что сделал все правильно, но только до размера массива 0х3, когда выбираю 4, ввожу элементы и появляется ошибка и это когда нет delete [] ptrmas;
При использовании delete [] ptrmas; работать с 0х3 не хочет во всех случаях выдает ошибку (только меняется 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <clx.h>
#pragma hdrstop
#include "windows.h"
//---------------------------------------------------------------------------
#include <stdio.h>
#pragma argsused
 
 
int N;
 float *ptrmas = new float [N];
void vvod_mas(int n)
{
 int i, k=1;
  for(i=0;i<n;i++)
  {   printf("Ââåäèòå %i-îå ÷èñëî:",k);
         scanf("%f",&ptrmas[i]);k++;
 }}
void viv_mas( int n)
{ int i;
  for(i=0;i<n;i++)
  {   printf("%.2f ",ptrmas[i]);
   }}
 
 void sor_mas (int n)
 { int i, j=0; float ji;
   for(i=1;i<n;i++)
      for(j=0;j<n;j++)
        if(ptrmas[j]>=2)
    { ji=ptrmas[i]; ptrmas[i]=ptrmas[j]; ptrmas[j]=ji; }
 
  printf("\nÏîëó÷åííûé ìàññèâ: \n");
      viv_mas(n);
 }
 
int main(int argc, char* argv[])
{ SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
 printf("Ââåñòè ðàçìåð ìàññèâà 0õN: ");
 scanf("%d",&N);
 
     vvod_mas(N);
     printf("\nÂâåäåííûé ìàññèâ 0õN:\n");
     viv_mas(N);
     sor_mas(N);
 
     printf("\n\n");
    delete [] ptrmas;
 
     system("pause");
        return 0;
}
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
28.09.2014, 01:22 4
Цитата Сообщение от bomx18 Посмотреть сообщение
C++
1
2
int N;
*float *ptrmas = new float [N];
Как ты думаешь, массив какого размера тут будет создан?

Добавлено через 12 минут
и оформление кода ужасно, не ужели тебе самому удобно в нем разбираться?
вот немного поправил, не идеально конечно, но лучше чем было
Кликните здесь для просмотра всего текста
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
#include <Windows.h>
#include <iostream>
 
using namespace std;
 
void inputArr(float* arr, int n)
{
    int i = 0;
    for (i = 0; i < n; i++)
    {
        cout << "Введите " << (i+1) << "-ое число:";
        cin >> arr[i];
    }
}
 
void outputArr(float* arr, int n)
{
    int i;
    for (i = 0; i<n; i++)
    {
        cout << arr[i] << " ";
    }
}
 
void sortArr(float* arr, int n)
{
    int i, j = 0;
    float ji;
    for (i = 1; i < n; i++) {
        for (j = 0; j < n; j++) {
            if (arr[j] >= 2)
            {
                ji = arr[i];
                arr[i] = arr[j];
                arr[j] = ji;
            }
        }
    }
}
 
int main(int argc, char* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Ввести размер массива 0хN: ";
    int N;
    cin >> N;
 
    float* arr = new float[N];
 
    inputArr(arr, N);
    cout << "\nВведенный массив 0хN:\n";
    outputArr(arr, N);
    sortArr(arr, N);
 
    cout << "\nПолученный массив: \n";
    outputArr(arr, N);
 
    cout << "\n\n";
    delete[] arr;
 
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 10
28.09.2014, 01:26  [ТС] 5
Понял... N равно какому-то числу. Как тогда мне правильно воспользоваться указателем, и куда поставить присвоение N. так не пойдет?
C++
1
2
printf("Ââåñòè ðàçìåð ìàññèâà 0õN: ");
 scanf("%d",&N);
0
28.09.2014, 01:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2014, 01:26
Помогаю со студенческими работами здесь

Доработать программу с использованием указателей
Необходимо доработать программу с использованием указателей. using System; namespace _1 { class...

Переделать программу с использованием указателей
Прошу помощи, переделать программу с использованием указателей. #include &lt;stdio.h&gt; int main() {...

Добавить пару указателей в программу
Доброе время суток! Нужно добавить пару указателей (*) в программу. Жду ваших предложений. Заранее...

Переписать программу с использованием указателей
поменяйте, пожалуйста, из индексов в указатели #include &lt;stdio.h&gt;; int cmp_cresc ( const int* x,...

Переделать программу через массивы указателей
Переделать программу через массивы указателей Условие: Знайти суму непарних чисел стовпця, у...

Надо написать программу на С++ с использованием указателей
* Составить программу, выполняет с одномерным массивом действия согласно заданию. Вместо...


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

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

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