Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Flaina
4 / 4 / 1
Регистрация: 09.11.2010
Сообщений: 31
#1

Использование указателей при работе с одномерными массивами - C++

02.04.2011, 14:33. Просмотров 672. Ответов 6
Метки нет (Все метки)

Реализовать на Си.
Даны натуральное число n, действительные числа a1,...,an. Если последовательность a1,...,an упорядочена по убыванию(т.е. если a1<=a2<=...<=an), то оставить ее без изменения. Иначе получить последовательность an,...,a1. Для решения этой задачи полезен список, изображенный на рисунке.
0
Миниатюры
Использование указателей при работе с одномерными массивами  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование указателей при работе с одномерными массивами (C++):

Использование указателей при работе с одномерными и двумерными массивами - C++
Даны натуральное число n, действительные числа a1, ..., an. Преобразовать последова-тельность a1, ..., a2n, расположив вначале...

Использование указателей при работе с одномерными и двумерными массивами - C++
Даны натуральное число n, действительные числа A1......An . Если в последовательности A1.....An есть хотя бы один член, меньший, чем -3,...

Использование указателей при работе с одномерными и двумерными массивами. - C++
Кто может решить. Даны натуральное число n,действительные числа X1,...,Xn.Вычислить: (X1+X2+2Xn)(X2+X3+2Xn-1)...(Xn-1+Xn+X2) Язык...

Указатели при работе с одномерными и двумерными массивами - C++
Помогите Даны натуральное число n, целые числа а1,...,аn . Выяснить, имеется ли среди чисел а1,...,аn совпадающие.

Реализовать класс для работы с одномерными массивами указателей строк - C++
всем привет. помогите пожалуйста не могу написать прогу по заданию. реализовать класс для работы с одномерными массивами указателей...

Использование функций при работе с двумерными массивами - C++
Дана прямоугольная вещественная матрица . Обнулить все четные столбцы и нечетные строки. В полученной матрице отсортировать по возрастанию...

6
DexMipt
13 / 13 / 1
Регистрация: 13.03.2011
Сообщений: 98
02.04.2011, 15:04 #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
#include <stdio.h>
#define SIZE 100
 
int main()
{
    int a[SIZE],i,n;
    int pass,hold;
 
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
 
    for(pass=1;pass<n;pass++){
        for(i=0;i<n-1;i++){
            if(a[i]<a[i+1]){
               hold=a[i];
               a[i]=a[i+1];
               a[i+1]=hold;
   }}}
 
   for(i=0;i<n;i++)
       printf("%d ", a[i]);
 
   return 0;
}
А можно и qsort использовать
0
Flaina
4 / 4 / 1
Регистрация: 09.11.2010
Сообщений: 31
02.04.2011, 15:05  [ТС] #3
Спасибо, но здесь указано, что нужно написать с использованием указателей. Не могли бы Вы помочь с этим?
0
DexMipt
13 / 13 / 1
Регистрация: 13.03.2011
Сообщений: 98
02.04.2011, 15:10 #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
#include <stdio.h>
#define SIZE 100
void buble(int* a,int n);
int main()
{
    int a[SIZE],i,n;
 
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
 
    buble(a,n);
 
    for(i=0;i<n;i++)
       printf("%d ", a[i]);
 
   return 0;
}
void buble(int* a,int n)
{
    int pass,hold,i;
    for(pass=1;pass<n;pass++){
        for(i=0;i<n-1;i++){
            if(a[i]<a[i+1]){
               hold=a[i];
               a[i]=a[i+1];
               a[i+1]=hold;
   }}}
}
1
Flaina
4 / 4 / 1
Регистрация: 09.11.2010
Сообщений: 31
06.04.2011, 21:25  [ТС] #5
Вот эта программа, она выполнена полностью с помощью указателей, как нужно было в задаче.Но она работает некоррректно, выдает неправильные результаты. Подскажите пожалуйста.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#define n 5
void main()
{ int a[n],i,j,*p,c;
 
for(i=1;i<n;i++)
scanf("%d", p++);
p=a;
for(i=1;i<n;i++)
{
if(*(p+1+i)>*(p+i))
for(j=1;j<(int)(n/2);j++)
{c=*(p+j); *(p+j)=*(p+n-1-j);*(p+n-1-j)=c;
}
break;
}
for(i=1;i<n;i++)
printf("%d", *(p+i));
getch();
}
0
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
06.04.2011, 21:46 #6
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
#include "stdafx.h"
#include <cmath>
#include <iostream>
#define SIZE 100
using namespace std;
void buble(int* a,int n);
int main()
{
    int a[SIZE],i,n;
 
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&*(a+i));
 
    buble(a,n);
 
    for(i=0;i<n;i++)
       printf("%d ", *(a+i));
 
   return 0;
}
void buble(int* a,int n)
{
    int pass,hold,i;
    for(pass=1;pass<n;pass++){
        for(i=0;i<n-1;i++){
            if(*(a+i)>*(a+i+1)){
               hold=*(a+i);
               *(a+i)=*(a+i+1);
               *(a+i+1)=hold;
   }}}
}
Полностью через указатели XD
0
Flaina
4 / 4 / 1
Регистрация: 09.11.2010
Сообщений: 31
07.04.2011, 15:23  [ТС] #7
А та задача, которую я привела, неправильная?
0
07.04.2011, 15:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2011, 15:23
Привет! Вот еще темы с ответами:

Использование функций для работы с одномерными и двухмерными массивами - C++
Привет всем!!!Помогите решить задачу=) Дано целое число N (&gt; 1), а также первый член A и знаменатель Q геометрической прогрессии....

Использование функций для работы с одномерными и двухмерными массивами - C++
Всем привет=) Помогите с решением! Плиз, очень надо! Условие: Дана матрица размера M × N. Поменять местами столбцы, содержащие...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя. - C++
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Задание с одномерными массивами - C++
Здравствуйте. Помогите, пожалуйста. Нужно ответить на дополнительный вопрос для защиты лабы. По написанной программе надо найти точку,...


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

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

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