Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  5.  
  6.  
  7. void ArrEntry(float M[], int lenght){ //masīva elementu ievade
  8. int i;
  9. for(i=0; i<lenght; i++) scanf("%f", &M[i]);
  10. }
  11.  
  12. void ArrOut(float M[], int lenght){ //masiva elementu izvade
  13. int i;
  14. for(i=0; i<lenght; i++)
  15. printf("\n%.3f ", *(M+i));
  16. printf("\n");
  17. }
  18.  
  19. float Sum(float M[], int lenght){ //atgriež elementu summu aiz pirmā pozitīvā skaitļa
  20. int i, j;
  21. float sum=0;
  22. for(i=0; i<lenght; i++){
  23. if(M[i]>0) {
  24. j=i+1;
  25. break;
  26. }
  27. }
  28.  
  29. if(j!=lenght){
  30. for(j;j<lenght;j++){
  31. sum+=M[j];
  32. }
  33. }
  34. return sum;
  35. }
  36.  
  37. int Max_ele(float M[], int lenght){ //nosaka un atgriež lielākā elementa indeksu
  38. int i, index;
  39. float max = M[0];
  40.  
  41. for(i=1; i<lenght; i++){
  42. if(max<abs(M[i])) {
  43. max=abs(M[i]);
  44. index=i;
  45. }
  46. }
  47. return index+1;
  48. }
  49.  
  50. void ArrSort(float M[], int lenght, float A, float B){ //sakārto masīvu pēc uzdevuma
  51. int i, j=0, l=0, count=0;
  52. float *arr;
  53. float *arr_2;
  54.  
  55. for(i=0;i<lenght;i++){
  56. if(*(M+i)>A&&*(M+i)<B) count++;
  57. }
  58.  
  59. int len = abs(count-lenght);
  60. arr = (float*)malloc(sizeof(float)*count);
  61. arr_2 = (float*)malloc(sizeof(float)*len);
  62.  
  63. for(i=0;i<lenght;i++){
  64. if(*(M+i)>A&&*(M+i)<B) {
  65. *(arr+j)=*(M+i);
  66. j++;
  67. }
  68. else {
  69. *(arr_2+l)=*(M+i);
  70. l++;
  71. }
  72. }
  73.  
  74. l=0;
  75.  
  76. for(i=0;i<lenght;i++){
  77. if(i<count){
  78. *(M+i)=*(arr+i);
  79. }else{
  80. *(M+i)= *(arr_2+l);
  81. l++;
  82. }
  83. }
  84. }
  85.  
  86. int main(int argc, char *argv[]) {
  87. float A, B;
  88. int i, lenght;
  89. float *M;
  90. printf("Hello\n");
  91. if(argc>1){
  92. if(strcmp(strupr(argv[1]), "-RAND")==0){
  93. lenght = 10;
  94. M = (float*)malloc(sizeof(float)*lenght);
  95. srand(time(0));
  96. for (i=0; i<10; i++){
  97. M[i] =((float)(rand()%10000-5000)/100);
  98. }
  99. A=(float)(rand()%10000-5000/100);
  100. B=(float)(rand()%10000-5000/100);
  101. printf("\nMasiva elementi:\n");
  102. ArrOut(M, lenght);
  103. printf("\nElementu summa pec pirma pozitiva skaitla: %.3f", Sum(M, lenght));
  104. printf("\nLielaka elementa numurs: %d", Max_ele(M, lenght));
  105. printf("\nA vertiba ir %.3f", A);
  106. printf("\nB vertiba ir %.3f\n", B);
  107.  
  108. }
  109. }else{
  110. printf("Ievadiet elementu daudzumu: ");
  111. scanf("%d", &lenght);
  112. printf("\nIevadiet Elementus:\n");
  113. M = (float*)malloc(sizeof(float)*lenght);
  114.  
  115. ArrEntry(M, lenght);
  116. printf("\nElementu summa pec pirma pozitiva skaitla: %.3f", Sum(M, lenght));
  117.  
  118. printf("\nLielaka elementa numurs: %d", Max_ele(M, lenght));
  119.  
  120. printf("\nIevadiet A vertibu: ");
  121. scanf("%f", &A);
  122.  
  123. printf("\nIevadiet B vertibu: ");
  124. scanf("%f", &B);
  125. }
  126.  
  127.  
  128.  
  129. printf("\nMasivs pirms:");
  130. ArrOut(M, lenght);
  131.  
  132. printf("\nMasivs pec:");
  133. ArrSort(M, lenght, A, B);
  134. ArrOut(M, lenght);
  135.  
  136. return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement