Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
chember08
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 41
1

Пояснить код формирования массива из элементов двух других

14.07.2011, 19:55. Просмотров 616. Ответов 7
Метки нет (Все метки)

Описать процедуру SortIndex(A, N, I), формирующую для веществен¬ного массива A размера N индексный массив I — массив целых чисел того же размера, содержащий номера элементов массива A в том порядке, который соответствует возрастанию элементов массива A (сам массив A при этом не изменяется). Индексный массив I является выходным параметром. С помощью этой процедуры создать индексные массивы для массивов A, B, C размера NA, NB, NC соответственно.
#include <stdio.h>

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <stdlib.h>
#include <math.h>
int *I;
int SortIndex(float *x,int N,int *index)
{
  float *k,buf_mas;
  int d,buf_ind,j;
  k=(float*)malloc(N*sizeof(float));
  index=(int*)malloc(N*sizeof(int));
  for(j=0;j<N;j++)
  {
   k[j] = x[j];
   index[j]= j+1;
  }
 
for(d=0;d<N;d++)
  {   
  for(j=1;j<N;j++)
   {    
    if (k[j] < k[j-1]) 
     {
      buf_mas = k[j];
      k[j] = k[j-1];
      k[j-1] = buf_mas;
      
      buf_ind = index[j];
      index[j] = index[j-1];
      index[j-1] = buf_ind;
     } 
   }
  }
   for(j=0;j<N;j++)
   { I[j] = index[j];}
  return 0;
}
 
int main()
{   float *a,*b,*c;    
    int m,n,i,f,p,h=10;
     //выделение памяти
    
    printf("Vvedite razmer 1 mas\n");
    scanf("%d",&m);
    a=(float*)malloc(m*sizeof(float));
    I=(int*)malloc(m*sizeof(int));
    for(i=0;i<m;i++)
    {a[i] = rand()%h-0.2;}
    f = SortIndex(a,m,I);
    for(i=0;i<m;i++)
    {
     printf("%4.1f",a[i]);
    }puts("\n");
     for(i=0;i<m;i++)
    {
     printf("%4i",I[i]);
    }
     puts("\n");
     
    printf("Vvedite razmer 2 mas\n");
    scanf("%d",&n);
    b=(float*)malloc(n*sizeof(float));
    I=(int*)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
    {b[i] = rand()%h-0.3;}
    f = SortIndex(b,n,I);
    for(i=0;i<n;i++)
    {
     printf("%4.1f",b[i]);
    }puts("\n");
     for(i=0;i<n;i++)
    {
     printf("%4d",I[i]);
    }
     puts("\n");
     
    printf("Vvedite razmer 3 mas\n");
    scanf("%d",&p);
    c=(float*)malloc(p*sizeof(float));
    I=(int*)malloc(p*sizeof(int));
    for(i=0;i<p;i++)
    {c[i] = rand()%h-0.4;}
    f = SortIndex(c,p,I);
    for(i=0;i<p;i++)
    {
     printf("%4.1f",c[i]);
    }puts("\n");
     for(i=0;i<p;i++)
    {
     printf("%4d",I[i]);
    }
     puts("\n");
      getchar();
  getchar();    
  return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода, а то скоро начнёте коллекционировать красные карточки.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2011, 19:55
Ответы с готовыми решениями:

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

Составить программу формирования массива A(N) из двух массивов B(M) и C(K), таким образом, чтобы элементы массива A(N)
распологались по убыванию помогите пожалуйста

Создание массива с суммой элементов двух других массивов
Даны два двумерных массива одинаковой размерности. Создать третий массив той же размерности, каждый...

Суммирование элементов массива по условиям, указанным в двух других массивах
Добрый день, форумчане! Имеются следующие входные данные: - файл Excel с большим количеством...

Определить, есть ли среди элементов массива такие, которые равны сумме двух других
Дано натуральное число n и целые числа a(1), a(2), ..a(n) (n&lt;100). Определить, есть ли среди этих...

7
nameless
14.07.2011, 20:04
  #2

Не по теме:

chember08,
Да, когда же вы научитесь правильно оформлять свой код.:-!

0
chember08
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 41
14.07.2011, 20:06  [ТС] 3
покажи как надо
0
Paporotnik
14.07.2011, 20:09
  #4

Не по теме:

выделить и нажать кнопочку C++

0
Kastaneda
Jesus loves me
Эксперт С++
5035 / 3048 / 349
Регистрация: 12.12.2009
Сообщений: 7,677
Записей в блоге: 2
Завершенные тесты: 1
14.07.2011, 20:14 5
Пояснить код формирования массива из элементов двух других
1
chember08
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 41
14.07.2011, 20:30  [ТС] 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
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <stdlib.h>
#include <math.h>
int *I;
int SortIndex(float *x,int N,int *index)
{
float *k,buf_mas;
int d,buf_ind,j;
k=(float*)malloc(N*sizeof(float));
index=(int*)malloc(N*sizeof(int));
for(j=0;j<N;j++)
{
k[j] = x[j];
index[j]= j+1;
}
 
for(d=0;d<N;d++)
{
for(j=1;j<N;j++)
{
if (k[j] < k[j-1])
{
buf_mas = k[j];
k[j] = k[j-1];
k[j-1] = buf_mas;
 
buf_ind = index[j];
index[j] = index[j-1];
index[j-1] = buf_ind;
}
}
}
for(j=0;j<N;j++)
{ I[j] = index[j];}
return 0;
}
 
int main()
{ float *a,*b,*c;
int m,n,i,f,p,h=10;
//выделение памяти
 
printf("Vvedite razmer 1 mas\n");
scanf("%d",&m);
a=(float*)malloc(m*sizeof(float));
I=(int*)malloc(m*sizeof(int));
for(i=0;i<m;i++)
{a[i] = rand()%h-0.2;}
f = SortIndex(a,m,I);
for(i=0;i<m;i++)
{
printf("%4.1f",a[i]);
}puts("\n");
for(i=0;i<m;i++)
{
printf("%4i",I[i]);
}
puts("\n");
 
printf("Vvedite razmer 2 mas\n");
scanf("%d",&n);
b=(float*)malloc(n*sizeof(float));
I=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{b[i] = rand()%h-0.3;}
f = SortIndex(b,n,I);
for(i=0;i<n;i++)
{
printf("%4.1f",b[i]);
}puts("\n");
for(i=0;i<n;i++)
{
printf("%4d",I[i]);
}
puts("\n");
 
printf("Vvedite razmer 3 mas\n");
scanf("%d",&p);
c=(float*)malloc(p*sizeof(float));
I=(int*)malloc(p*sizeof(int));
for(i=0;i<p;i++)
{c[i] = rand()%h-0.4;}
f = SortIndex(c,p,I);
for(i=0;i<p;i++)
{
printf("%4.1f",c[i]);
}puts("\n");
for(i=0;i<p;i++)
{
printf("%4d",I[i]);
}
puts("\n");
getchar();
getchar();
return 0;
}
Добавлено через 40 секунд
теперь может поможешь?????
0
Kastaneda
14.07.2011, 20:33
  #7

Не по теме:

Еще есть кнопка TAB, ей можно форматировать код, до читабельного состояния!
EXAMPLE

C++
1
2
3
int main(){
     std::cout<<"Hello\n";
}

0
neske
1530 / 897 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
14.07.2011, 23:29 8
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

все как надо изложено)
0
14.07.2011, 23:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2011, 23:29

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

Пояснить код перестановки элементов в массиве
Всем дорбого времени суток! #include&lt;stdio.h&gt; #define SIZ 7 int main(){ int tmp,...

Передача массива Web-сервису (Пояснить код)
Добрый день! Возникла необходимость передать массив в качестве параметра в одной из функций...


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

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

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