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

Из массива удалить элементы, номера которых кратны введенному некоторому числу

13.11.2009, 23:04. Показов 6593. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести массив чисел с задаваемым количеством элементов и затем некоторое число.
Из массива удалить элементы,номера которых кратны введенному некоторому числу , а затем переставить местами соседние элементы массива в парах,если такая пара имеется.

Пример:

8-колво элементов 2 6 3 4 7 5 1 8 3-некоторое число Ответ: 3 6 5 7 8

Вот мой код. Здесь я пытался вывести второй массив но что не получается (еще без перестановки чисел в массиве в парах) Код на СИ

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 <stdio.h>
#include <malloc.h>
 
void main (void)
{
  int *A,*B;
  int m,i,j,n,l,k,u,v;
  i=0;
  j=0;
  v=0;
 
  printf("Enter massive size 1: ");
  scanf("%d",&m);
 
  A=(int*)malloc(m*sizeof(int));
  printf("Enter massive:\n ");
 
      for (i=0; i<=(m-1); i++)
         scanf("%d",&A[i]);
 
 
    i=0;
 
    printf("vvedite luboe chislo\n");
    scanf("%d",&n);
 
 
      do
    {
      l=i%n;
      if(l!=0)
        {
        B=(int*)malloc(j*sizeof(int));
        B[j]=A[i];
        j=j+1;
        v=v+1;
        }
 
      i=i+1;
 
     }
        while(i<m);
 
 
       for (j=0;j<=v;j++)
 
     printf("%d",B[j]);
 
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2009, 23:04
Ответы с готовыми решениями:

Из массива удалить элементы,номера которых кратны введенному некоторому числу
Ввести массив чисел с задаваемым количеством элементов и затем некоторое число. Из массива удалить...

Заменить нулевые элементы массива на сумму элементов,значения которых кратны некоторому целому значению.
В одномерном массиве A с размерностью N: Заменить нулевые элементы массива на сумму...

Удалить те элементы массива, которые кратны заданному числу k
1)Дан список, содержащий натуральные числа. Удалить те его элементы, которые кратны заданному числу...

Удалить те элементы массива, которые кратны заданному числу k
Дан список, содержащий натуральные числа. Удалить те его элементы, которые кратны заданному числу k.

4
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
14.11.2009, 07:51 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
52
53
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
 
int main (void)
{
    int *A, *arrRes;
    int m,n, newSize, temp;
 
    printf("Enter massive size 1: ");
    scanf("%d",&m);
    if(m<=0)
    { printf("\nerr value m: %i",n); getch(); return 1; }
 
    A=(int*)malloc(m*sizeof(int));
    printf("Enter massive: \n");
 
    for (int i=0; i<m; i++)
        scanf("%d",&A[i]);
 
    printf("vvedite luboe chislo\n");
    scanf("%d",&n);
 
  if (n>0)      // если введёное число больше нуля
  { // заводим второй массив в котом уже не будет элементов кратных n
        newSize=m+1-(m+1)/n;
        arrRes=(int*)malloc(newSize*sizeof(int));
  }
    else
    { printf("\nerr value n: %i",n); getch(); return 1; }
 
    // заполняем созданный дублирующий элемент,
    //  можно совместить с переворотом соседних элементов но мы этого делять не будем
 
    for (int i=0, j=0; i<newSize; i++,j++)
    {
        if(j&&(j%n==0)) ++j;        // в вашем примере почему-то не удаляется нулевой элемент
                                            // а он вроде кратен любому числу
                                            // ну и я его оставлю
        arrRes[i]=A[j];
    }
    
    for (int i=0; i<newSize-1; i+=2)        // смена парных
    {
        temp=arrRes[i];
        arrRes[i]=arrRes[i+1];
        arrRes[i+1]=temp;
    }
    printf("\nResult: ");
    for (int i=0, j=0; i<newSize; i++,j++) printf(" %i", arrRes[i]);
    
    getch(); return 0;
}   // end main
0
2 / 2 / 0
Регистрация: 13.11.2009
Сообщений: 24
14.11.2009, 21:42  [ТС] 3
Спасибо большое.

Но при компилировании выдает такие ошибки

Multiple declaration for "i"


Многократное обьявление?

А что это за ошибка?
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
14.11.2009, 21:54 4
компилятор случаем не VC++ 6,0 ?
убери во всех форах кроме первого объявление int
0
2 / 2 / 0
Регистрация: 13.11.2009
Сообщений: 24
14.11.2009, 22:21  [ТС] 5
Borland C++ For DOS 3.1

Добавлено через 3 минуты
Ага все нормально прошло, осталось немного подправить.
Спасибо большое
1
14.11.2009, 22:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2009, 22:21
Помогаю со студенческими работами здесь

Элементы массива, индексы которых кратны числу 3, заменить нулями
Дан одномерный массив а=(а1,а2,а3...аn). Элементы массива индексы который кратные числу 3 заменить...

Распечатать элементы массива, номера которых кратны 4
Необходимо написать программы в Паскале: Распечатать элементы массива, номера которых кратны...

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

Удалить элементы массива, индексы которых кратны 3
Доброго времени суток!Я хотел бы попросить помощи в решении данной задачи: 1) Сформировать...


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

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

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