Задача 2.5

1. Условие

Даны натуральное число n, действительные числа x1, x2, ... , xn. Получить в порядке следования все xk, удовлетворяющие неравенствам xk>x1, xk>x2, ... ,xk>xk-1.

2. Решение

Задаем значение n. Выделяем память под массив действительных чисел x1, x2, ... , xn. Производим инициализацию массива. В цикле определяем в порядке следования все элементы, удовлетворяющие неравенству.

3. Алгоритм решения

4. Текст программы

0 :  #include <stdio.h> 
1 :  #include <alloc.h> 
2 :  #include <conio.h> 
3 :  void main() 
4 :  { 
5 :      int k, i, n, povt; 
6 :      float *x; 
7 :      clrscr( ); 
8 :      printf( "\n \t \t Введите количество элементов n = " ); 
9 :      scanf( "%d", &n ); 
10:      x=(float*)malloc( n*sizeof(float) ); 
11:      printf( "\n \t \t \t Введите элементы: \n" ); 
12:      for(i=0; i<n; i++) 
13:      { 
14:           printf( " \t \t \t \t x[%d] = ", i+1 ); 
15:           scanf( "%f", &x[i] ); 
16:      } 
17:      printf( "\n \n Элементы удовлетворяющие неравенству x[k]>x[l],...,x[k]>x[k-l]:"); 
18:      for( k=1; k<n; k++ ) 
19:      { 
20:           povt=0; 
21:           for(i=0;i<k;i++) 
22:                   if(x[k]<x[i]) 
23:                          {
24:                              povt=1; 
25:                              break;
26:                          } 
27:           if(povt == 0) 
28:                   printf( "\n \t \t \t \t x[%d]=%f", i+1, x[i] ); 
29:      }
30:      printf( "\n \n \n \t \t Для выхода нажмите клавишу Enter." ); 
31:      getch( ); 
32:      free( x ); 
33:  }

5. Работа программы

Введите количество элементов n=8
Введите элементы:
х[1] = 1
х[2] =-9
х[3] = 6
х[4] = 4
х[5] =-9
х[6] = 7
х[7] = 0
х[8] = 8
Элементы, удовлетворяющие неравенству:
х[3] = 6.000000
х[6] = 7.000000
х[8] = 8.000000
Для завершения программы нажмите клавишу Enter.

6. Проверка

Программа работает корректно.       

Хостинг от uCoz