Tassos

Εύρεση καρκινικής φράσης σε πίνακα.

Apr 4th, 2014
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 KB | None | 0 0
  1. {                                Visit:   http://g-lts.info/  for more code!                         }
  2.  
  3. #include <stdio.h>
  4.  
  5. int palin(char p[], int a);
  6. /* Δήλωση συνάρτησης με όνομα palin, που παίρνει 2 παραμέτρους :
  7. 1 - έναν πίνακα χαρακτήρων ( τον δηλώνουμε με ένα όνομα και κενές αγκύλες )
  8. 2 - έναν ακέραιο που δείχνει πόσες θέσεις έχει ο πίνακας.  */
  9.  
  10. int main (void)
  11.  
  12. {
  13. char leksi[] = "level"; /* 5 θέσεων (+1 για τον χαρακτήρα '\0' που σημαίνει
  14.             το τέλος του αλφαριθμητικού) */
  15.  
  16. if ( palin(leksi,5) == 1 ) /* αν επιστρέψει 1 η συνάρτηση μας*/
  17.     printf("Η λέξη του πίνακα είναι παλίνδρομη - καρκινική.\n");
  18. else
  19.     printf("Η λέξη δεν είναι παλίνδρομη - καρκινική!\n");
  20.    
  21.    
  22.  
  23. return 0;
  24. }
  25.  
  26. /* Ορισμός συνάρτησης palin */
  27. int palin(char p[], int a)
  28. {
  29. int i=0; /* i=στην πρώτη θέση του πίνακα */
  30. int j=a-1; /* j=το μέγεθος του πίνακα που παίρνει ως παράμετρο η συνάρτηση μας,
  31.        πλην όμως 1 θέση, γιατί ο πίνακας είναι πίνακας string και περιέχει
  32.        όπως είπαμε τον τερματικό χαρακτήρα '\0' */
  33.  
  34.  
  35. while ( (i<=j) && (p[i]==p[j]) ) /*μέχρι να ανταμωθεί το i με το j */
  36.     {       /*και όσο συνεχόμενα είναι ίδιες οι τιμές μεταξύ τους*/
  37.     i++; j--;
  38.     }
  39.  
  40. if ( p[i]==p[j] )
  41.     return 1;
  42. else
  43.     return -1;
  44.  
  45. }
  46.  
  47. {                                Visit:   http://g-lts.info/  for more code!                         }
Advertisement
Add Comment
Please, Sign In to add comment