Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Borland C++5.02 задача на массив (http://forum.oszone.net/showthread.php?t=210466)

zakaru4ka 04-07-2011 19:09 1706819

Borland C++5.02 задача на массив
 
Нужна помощь!!(( У меня есть целочисленный массив X[100] ,который был получен с помощью генератора случайных чисел.

Как выбрать без повторения все числа, встречающиеся более одного раза. Сформировать из них массив B[], упорядочить элементы по убыванию и вывести на экран исходный и упорядоченный массивы......?????

LilLoco 05-07-2011 07:36 1707132

zakaru4ka, Для начала продумайте как бы Вы это сделали "логически"... Набросайте блок - схемы, продумайте весь процесс, ну а далее переведите все это в код... Если что то не получится, Вам помогут, но делать за Вас вряд ли станут!

zakaru4ka 05-07-2011 13:57 1707418

сделала первую часть, дальше не знаю (Получить элементы целочисленного массива X[100] с помощью генератора случайных чисел). Допишите пожалуйста!!

Код:

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#define n 100
void swap(int *x, int *y)
{
int t=*x;
*x=*y;
*y=t;
}


void main(void)
{
int i,a[n],n1=n;
float t;
clock_t beg,end;
clrscr();
srand((unsigned)time(0));
puts(" isxodnuy massiv:");
for (i=0; i<n; i++)
{
a[i]=100 + rand() % n;
printf("%d\t",a[i]);
}

getch();
}


Drongo 05-07-2011 19:07 1707682

Цитата:

Цитата zakaru4ka
Как выбрать без повторения все числа, встречающиеся более одного раза. »

Я не совсем понял условие. Можете немного пояснить, что значит без повторения ?

zakaru4ka 05-07-2011 20:38 1707750

Ну вот вроде разобралась. только как тут сделать чтобы выводился преобразованный
упорядоченный массив
. Потомучто у меня показывается только основной массив и числа , которые без повторения встречаются более одного раза???


Код:

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#define n 100
 void swap(int *x, int *y)
{
        int t=*x;
  *x=*y;
  *y=t;
}
 
void bubble(int a[], int n1)
{
        int i,j;
        for ( i=0; i<n1; i++)
                for( j=0; j<n1-i-1; j++)
                        if (a[j] > a[j+1])
                        swap(&a[j], &a[j+1]);

}

void main(void)
{
randomize();
  int i,j,a[n],b[n],n1=n;
  float t;

        clrscr();
    puts("  isxodnuy massiv:");
  for (i=0; i<n; i++)
  {
      a[i]=random(60);
      printf("%d\t",a[i]);
  }
  bubble(a,100);
    j=0;
  for (i=0; i<n; i++)
  if ((a[i]==a[i+1])&&(a[i]!=b[j-1]))
  {
  b[j]=a[i];
  j++;
  }  printf("\n");
    for (i=0; i<(j-1); i++)
    printf("%d\t",b[i]);
  getch();
}


Beyound 05-07-2011 22:11 1707811

ну насколько я понимаю для этого у вас (ли) предусмотрена функция bubble, по названию которой явно что она делает сортировку пузырьком. вот и упорядоченный массив

zakaru4ka 05-07-2011 22:50 1707834

нет, я имею ввиду чтобы на экран выводился исходный массив, упорядоченный и числа, встречающиеся более одного раза.


у меня только выводится исходный и числа, встречающиеся более одного раза.

zakaru4ka 06-07-2011 17:17 1708375

вопрос зактрыт. задача решена

Drongo 06-07-2011 17:35 1708383

zakaru4ka, решение запостите?

zakaru4ka 07-07-2011 18:55 1709082

Код:

#include <stdio.h>  //подключение файла с объявлением стандартных функций файлового ввода-вывода;
#include <string.h>
#include <conio.h>  //консольный ввод/вывод
#include <time.h>
#include <stdlib.h>
#define n 100    //по умолчанию 100 элементов
 void swap(int *x, int *y)
  {
        int t=*x;
        *x=*y;
        *y=t;
                        }
 
void bubble(int a[], int n1)  //пузырьковая сортировка
{
        int i,j;
        for ( i=0; i<n1; i++)
                for( j=0; j<n1-i-1; j++)
                        if (a[j] > a[j+1])
                        swap(&a[j], &a[j+1]);

                                                                                }

void main(void)
{
randomize();
  int i,j,a[n],b[n],n1=n;
  float t;

        clrscr();
    puts("  isxodnuy massiv:");  //вывод на экран
  for (i=0; i<n; i++)
  {
      a[i]=random(60);
      printf("%d\t",a[i]);
  }
  bubble(a,100);
    j=0;
  for (i=0; i<n; i++)
  if ((a[i]==a[i+1])&&(a[i]!=b[j-1]))
  {
  b[j]=a[i];
  j++;
  } 
  printf("\n");
  for (i=0; i<n; i++)
    printf("%d\t",a[i]);
    printf("\n");
    for (i=0; i<(j-1); i++)
    printf("%d\t",b[i]);
  getch();
}



Время: 01:09.

Время: 01:09.
© OSzone.net 2001-