Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*the program was written by Aleksey Tolstykh 321794968*/
- #include <stdio.h>
- #include <string.h>
- #define N 6
- #define M 8
- #define V 10
- #define Z 100
- #define H 4
- int check_zone(int nums[][M], int x, int y, int num, int *);
- int slope_rec(int [][H], int );
- int check_sort(int *, int);//Check if array
- void reducing(char *);
- int slope_rec(int data[][H], int index)
- {
- int i=0;
- if(index<H)
- {
- for(i=1;index+i<H;i++)
- {
- if(!(data[index+i][index]<0 && data[index][index+i]>0 && data[index][index] == 0))
- {
- return 0;
- }
- }
- if(data[index][index]==0)
- {
- index++;
- slope_rec( data, index);
- }
- else
- return 0;
- }
- else
- return 1;
- }
- int check_sort(int * arr, int size)
- {
- if(arr[size-2] > arr[size-1])//Recursion
- return 0;
- if(size >= 2)
- {
- size--;
- check_sort(arr,size);
- }
- else
- return 1;
- }
- void reducing(char *string)
- {
- if(*string == '\0')//Recursion
- return;
- if(*string >= 48 && *string <= 57)
- {
- printf("%c",*string);
- }
- string++;
- reducing(string);
- }
- int check_zone(int nums[][M], int x, int y, int num, int *count)
- {
- if((x<=N) || (y<=M) || (x>=0) || y>=0)
- {
- nums[x][y]=0;
- *count=*count+1;
- if (nums[x-1][y-1]==num)
- {
- check_zone(nums,x-1,y-1,num,count);
- }
- if(nums[x-1][y]==num)
- {
- check_zone(nums,x-1,y,num,count);
- }
- if(nums[x][y-1]==num)
- {
- check_zone(nums,x,y-1,num,count);
- }
- if(nums[x+1][y+1]==num)
- {
- check_zone(nums,x+1,y+1,num,count);
- }
- if(nums[x+1][y]==num)
- {
- check_zone(nums,x+1,y,num,count);
- }
- if(nums[x][y+1]==num)
- {
- check_zone(nums,x,y+1,num,count);
- }
- if(nums[x+1][y-1]==num)
- {
- check_zone(nums,x+1,y-1,num,count);
- }
- if(nums[x-1][y+1]==num)
- {
- check_zone(nums,x-1,y+1,num,count);
- }
- }
- return *count;
- }
- void main()
- {
- int choose=1,result=0,result2=0,index=0;
- int arr[V]={0};//array
- int data[H][H]={0};//array
- int size=V;
- int i=0,k=0,l=0,j=0;
- int nums[N][M]= {{4, 3 ,2 ,3 ,1 ,3 ,2 ,1},//array
- {5, 3, 3, 2, 2, 2, 1, 2},
- {1 ,1 ,3 ,3, 2, 1, 2, 1},
- {1 ,3 ,3 ,2 ,4 ,3 ,3 ,2},
- {5 ,5 ,3 ,4 ,4 ,4 ,3 ,2},
- {5 ,3 ,4 ,2 ,2 ,2 ,3 ,2}};
- int x=0,y=0,num=0;
- int count=0;
- char str[Z];
- while(choose!=5)
- {
- printf("Choose function:\n1-Check sorting\n2-Reducing\n3-Sloping \n4-Check zone\n5-Exit \n");
- scanf("%d",&choose);
- switch(choose)// Menu's
- {
- case 1:
- printf("Enter array size 10 for check sorting: \n");
- for(i=0;i<V;i++)
- {
- scanf("%d",&arr[i]);
- }
- printf("\nThe array is:\n");
- for(i=0;i<size;i++)
- {
- printf("%4d",arr[i]);
- }
- printf("\n");
- result=check_sort(arr,size);
- if (result==0)
- {
- printf("The array is NO sorted !\n\n");
- }
- if (result==1)
- {
- printf("The array is sorted !\n\n");
- }
- break;
- case 2:
- {
- printf("Enter string for reducing:\n");
- gets(str);
- gets(str);
- printf("The reduced string is:\n");
- reducing(str);
- printf("\n");
- }
- break;
- case 3:
- printf("Enter array size %d X %d for check slope\n",H,H);
- for(k=0;k<H;k++)
- {
- printf("Enter row %d:\n",k);
- for(l=0;l<H;l++)
- {
- scanf("%d",&data[k][l]);
- }
- }
- printf("The array is:\n");
- for(i=0;i<H;i++)
- {
- for(j=0;j<H;j++)
- {
- printf("%3d",data[i][j]);
- }
- printf("\n");
- }
- result2=slope_rec(data,index);
- if (result2==0)
- {
- printf("The array is NOT slope ! \n");
- }
- if (result2==1)
- {
- printf("The array is slope ! \n");
- }
- break;
- case 4:
- printf("Enter the coordinates for number\n");
- scanf("%d%d",&x,&y);
- printf("The number is %d\n",nums[x][y]);
- num=nums[x][y];
- for(i=x-1;i<=x+1;i++)
- {
- for(j=y-1;j<=y+1;j++)
- {
- printf("%3d",nums[i][j]);
- }
- printf("\n");
- }
- check_zone(nums,x,y,num,&count);
- printf("The size of the zone is : \n");
- printf("%d\n",count);
- for(i=0;i<N;i++)
- {
- for(j=0;j<M;j++)
- {
- printf("%3d",nums[i][j]);
- }
- printf("\n");
- }
- break;
- case 5:
- {
- }
- break;
- }
- }
- }
Add Comment
Please, Sign In to add comment