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

Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции - C++

Восстановить пароль Регистрация
 
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
12.02.2014, 15:28     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции #1
Что исправить?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#define N 10
 
int udalenie(int A[N],int k )
 
{
    int i;
    for(i=k;i<N;i++)
        if(A[N]<0)
        A[i]=A[i+1];
    }
 
 
void main(void)
 
 
{int i,k1=0;
    int A[N]={-1,-2,-3,1,2,3,4,5,6,7};
for(i=0;i<N;i++)
    udalenie(A[N],k1);
    for(i=0;i<N;i++)
printf("%d",A[i]);}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2014, 15:28     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции
Посмотрите здесь:

C++ Удалить из массива отрицательные элементы
Удалить из массива все отрицательные элементы C++
C++ Удалить все отрицательные элементы массива
Удалить из массива все отрицательные элементы C++
Удалить из массива все отрицательные элементы; C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
12.02.2014, 15:51     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции #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
#include <stdio.h>
#define N 10
void udalenie(int *A, int k, int K)
{
    for (int i=k;i<K; i++) {
        A[i]=A[i+1];
    }
}
 
 
int main()
{
    int K=N;
    int i;
    int A[N]={-1,-2,-3,1,2,3,4,5,6,7};
    for(i=0;i<K;i++){
        if (A[i]<0) {
            udalenie(A,i,K);
            i--;
            K--;
        }
    }
    for(i=0;i<K;i++){
        printf("%d ",A[i]);
    }
    system("pause");
    return 0;
}
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
12.02.2014, 15:52  [ТС]     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции #3
fishec, а без указателя можно?
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
12.02.2014, 15:56     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции #4
можно, замени int *A на int A[N]
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
12.02.2014, 16:13  [ТС]     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции #5
fishec, спасибо,работает,только можете объяснить,для чего вводится K(и можно ли без неё обойтись),и что такое N-- и i-- - сдвиг?
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
12.02.2014, 17:47     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции #6
После удаления элемента длина массива уменьшается на 1. В переменной K хранится новая длина массива. И после очередного удаления мы уменьшаем K на 1. Также после удаления i-го элемента на его место сдвигается следующий, поэтому на следующем шаге цикла нужно снова проверять i-ый элемент, для этого используется i--
Yandex
Объявления
12.02.2014, 17:47     Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции
Ответ Создать тему
Опции темы

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