Advertisement
Guest User

8.

a guest
May 20th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <time.h>
  5.  
  6. #define MAX 100
  7. #define UPPERBD 110
  8.  
  9. int createArray(int iFld[], int stopWert, int lowerBD);
  10. void printData(int iFld[], int arrayCounter);
  11. int deleteNLinesAfterMin(int iFld[], int iFollowingMin[], int *arrayCounter, int *delData, int *min);
  12.  
  13. int main()
  14. {
  15.   srand(time(NULL));
  16.   int iFld[MAX];
  17.   int iFollowingMin[MAX];
  18.   int lowerBD=10;
  19.   int stopWert=105;
  20.   int arrayCounter;
  21.   int min;
  22.   int delData=3;
  23.  
  24.   arrayCounter=createArray(iFld, stopWert, lowerBD);
  25.   printf("Array data (number of Data: %d)\n", arrayCounter);
  26.   printData(iFld, arrayCounter);
  27.  
  28.   deleteNLinesAfterMin(iFld,iFollowingMin, &arrayCounter, &delData, &min);
  29.   printf("\n\nDeleted Elements (following min=%d): %d\n", min, delData);
  30.   printf("Array data (number of Data: %d)\n", arrayCounter);
  31.   printData(iFld, arrayCounter);
  32.   printf("Array deleted data:\n");
  33.   printData(iFollowingMin, delData);
  34.   return 0;
  35. }
  36.  
  37. int createArray(int iFld[], int stopWert, int lowerBD)
  38. {
  39.   int counter=0;
  40.   for(int i=0; i<MAX; i++)
  41.   {
  42.     iFld[i]=rand()%(UPPERBD-lowerBD+1)+lowerBD;
  43.     counter++;
  44.     if(iFld[i]>=stopWert) break;
  45.   }
  46.   return counter;
  47. }
  48.  
  49. void printData(int iFld[], int arrayCounter)
  50.  
  51. {
  52.   int stop=0;
  53.  
  54.   for(int i=0; i<arrayCounter; i+=10)
  55.   {
  56.     printf("\t");
  57.     for(int i=0; i<10; i++)
  58.     {
  59.       printf("%3d ", iFld[stop]);
  60.       stop++;
  61.       if(stop==arrayCounter) break;
  62.     }
  63.     printf("\n");
  64.     if(stop==arrayCounter) break;
  65.   }
  66. }
  67.  
  68. int deleteNLinesAfterMin(int iFld[],int iFollowingMin[], int *arrayCounter, int *delData, int *min)
  69. {
  70.     *min = iFld[0];
  71.     int point;
  72.     for(int i = 1; i<*arrayCounter; i++)
  73.     {
  74.         if(*min>iFld[i]) *min = iFld[i];
  75.     }
  76.  
  77.     for(point = 0; iFld[point]!=*min; point++);
  78.     while( (*arrayCounter-point) < *delData ) *delData-=1;
  79.     for(int i=0; i<*delData; i++)
  80.     {
  81.         iFollowingMin[i]=iFld[point+i];
  82.     }
  83.  
  84.     for(int i=point; i<*arrayCounter-*delData; i++)
  85.     {
  86.         iFld[i] = iFld[i+*delData];
  87.     }
  88.  
  89.     *arrayCounter-=*delData;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement