Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //remove positive elements from an array
- //COMMENTS DOWN!!!!!
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #include <time.h>
- #define SIZE 10
- void pop_arr(int *,int);
- void pr_arr(int *, int);
- int is_it_positive(int *,int);
- void remove_elem(int *,int,int);//by index
- int main()
- {
- int i,arr[SIZE],answer,counter ;
- i = counter = answer = 0;
- pop_arr(arr,SIZE);
- pr_arr(arr,SIZE);
- while(i<SIZE)
- {
- answer =is_it_positive(arr,i);
- if(answer)
- {
- remove_elem(arr,i,SIZE);
- //printf("after removing:\n");
- //pr_arr(arr,SIZE);
- counter++;
- }
- else
- i++;//check following array element
- }
- printf("final counter are %d\n",counter);
- pr_arr(arr,SIZE-counter);
- return 0;
- }
- void pop_arr(int *a,int s)
- {
- int i;
- srand(time(NULL));
- for(i=0;i<s;i++)
- {
- a[i]= rand()%100-50;
- }
- }
- void pr_arr(int *a,int s)
- {
- int i;
- for(i=0;i<s;i++)
- {
- printf("%d\t",a[i]);
- }
- }
- int is_it_positive(int *a,int index)
- {
- return (a[index]>0)? 1:0;
- }
- void remove_elem(int *a,int index,int s)
- {
- int i=index;
- for(i=index;i<s-1;i++)
- {
- a[i]= a[i+1];
- }
- }
- B main() – в цикле while вызываem функцию, которая при каждом своем вызове проверяет единственный элемент массива следующим образом
- Если элемент оказывается положительным, то функция возвращает в main() 1, иначе возвращает 0.
- Если возвращен 0, i(index) увеличивается на 1, while переходит к следующей итерации.
- Если 1, вызывается функция remove() для удаления этого положительного элемента. После ее выполнения в main() i не меняется, counter++, while переходит к следующей итерации.
- i – индекс элемента массива counter – найденные положительные элементы массива
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement