Advertisement
Makakas

лаба10

May 14th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1. #include "stdafx.h" 
  2.  
  3. #include "stdio.h" 
  4.  
  5. #include "conio.h" 
  6.  
  7. #include "malloc.h" 
  8.  
  9. #define N 20 
  10.  
  11.  
  12. //Функция ввода размерности 
  13.  
  14. int razmer(int *ra, char sim) 
  15.  
  16. { 
  17.  
  18. while(1) 
  19.  
  20. { 
  21.  
  22.  printf("Введите размерность вектора %c=>",sim); 
  23.  
  24.  scanf_s("%d",ra); 
  25.  
  26.  if ((*ra>0)&&(*ra<30)) break; 
  27.  
  28. } 
  29.  
  30. return(*ra); 
  31.  
  32. } 
  33.  
  34.  
  35. //Функция ввода элементов вектора 
  36.  
  37. void vvod_vektora(int *ra, float *pa, char sim) 
  38.  
  39. { 
  40.  
  41. int i; 
  42.  
  43. for(i=0;i<*ra;i++) 
  44.  
  45. { 
  46.  
  47.  printf("%c[%d]=",sim,i); 
  48.  
  49.  scanf_s("%f",pa+i); 
  50.  
  51. } 
  52.  
  53. } 
  54.  
  55.  
  56. //Функция вывода элементов вектора 
  57.  
  58. void vivod_vektora(int *ra, float *pa, char sim) 
  59.  
  60. { 
  61.  
  62. int i; 
  63.  
  64. for(i=0;i<*ra;i++) 
  65.  
  66.  printf("%3.2f ",*(pa+i)); 
  67.  
  68. } 
  69.  
  70.  
  71. //Функция поиска минимального элемента 
  72.  
  73. float poisk(int *ra, float *pa, char sim) 
  74.  
  75. { 
  76.  
  77. int i; 
  78.  
  79. float min=*(pa+0);  
  80.  
  81.          for(i=0;i<*ra;i++) 
  82.  
  83.  if (*(pa+i)<min) min=*(pa+i); 
  84.  
  85. printf("\nМинимум вектора %c=%3.2f",sim,min); 
  86.  
  87.  return(min); 
  88.  
  89. } 
  90.  
  91.  
  92. //Главная функция 
  93.  
  94. void main() 
  95.  
  96. { 
  97.  
  98. while(1) 
  99.  
  100. { 
  101.  
  102.  int r1,r2; 
  103.  
  104.  float *a,*b,mina,minb; 
  105.  
  106.  char otv; 
  107.  
  108.  r1=razmer(&r1,'a'); 
  109.  
  110.     a=(float*)malloc(r1*sizeof(float)); 
  111.  
  112.  printf("Введите вектор a:\n");  
  113.  
  114.     vvod_vektora(&r1,&*a,'a'); 
  115.  
  116.  r2=razmer(&r2,'b'); 
  117.  
  118.     b=(float*)malloc(r2*sizeof(float)); 
  119.  
  120.  printf("Введите вектор b:\n");  
  121.  
  122.     vvod_vektora(&r2,&*b,'b'); 
  123.  
  124.  printf("\n Исходный вектор a\n"); 
  125.  
  126.     vivod_vektora(&r1,&*a,'a'); 
  127.  
  128.  printf("\n Исходный вектор b\n"); 
  129.  
  130.     vivod_vektora(&r2,&*b,'b'); 
  131.  
  132.  mina=poisk(&r1,&*a,'a'); 
  133.  
  134.  minb=poisk(&r2,&*b,'b'); 
  135.  
  136.     if (mina<minb) printf("\n mina<minb"); 
  137.  
  138.     if (minb<mina) printf("\n minb<mina"); 
  139.  
  140.     if (mina==minb) printf("\n mina=minb"); 
  141.  
  142.  printf("\n Продолжим работу (Y/N)?"); 
  143.  
  144.     scanf("%s",&otv); 
  145.  
  146.  if ((otv=='n')||(otv=='N')) break; 
  147.  
  148. free(a); 
  149.  
  150. free(b); 
  151.  
  152.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement