Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- /* run this program using the console pauser or add your own getch, system("pause") or input loop */
- int *tw_tab (int r){
- int i;
- int *wsk;
- wsk=malloc(r*sizeof(int));
- for (i=0;i<r;i++){
- printf("t[%d]=",i+1);
- scanf("%d",&wsk[i]);
- }
- return wsk;
- }
- int karprobin (int *tekst, int t, int *szukana, int s){
- int i,j;
- int r;
- int h;
- int sz;
- sz=szukana[s];
- int m;
- m=1;
- for (i=s-1;i>=0;i--){
- m=m*10;
- sz=sz+szukana[i]*m;
- }
- int k;
- k=1;
- r=0;
- for (i=0;i<=t-s;i++){
- if (i==0){
- h=0;
- for (j=s;j>=0;j--){
- h=h+tekst[j]*k;
- k=k*10;
- }
- if(h==sz)r++;
- }else{
- h=h-(tekst[i-1]*(m));
- h=(h*10)+tekst[i+s];
- if (h==sz)r++;
- }
- }
- return r;
- }
- int main(int argc, char *argv[]) {
- int n,m,temp;
- printf("jaką długość ma przeszykiwany tekst ");
- scanf("%d",&n);
- printf ("wprowadź tekst \n");
- int *prz_wsk;
- prz_wsk=tw_tab(n);
- printf ("wprowadź długość poszukiwanego wzorca ");
- scanf("%d",&m);
- printf ("wprowadź wzorzec \n");
- int *tab_wsk;
- tab_wsk=tw_tab(m);
- int i;
- if(m>n)printf("error");else
- printf("szukany wzór występuje w tekście %d razy ",karprobin(prz_wsk,n-1,tab_wsk,m-1));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement