• C语言:判断字符串是否为回文,-函数fun将单向链表结点数据域为偶数的值累加起来。-用函数指针指向要调用的函数,并进行调用。


    //函数fun功能:用函数指针指向要调用的函数,并进行调用。

     1 #include  <stdio.h>
     2 double f1(double  x)
     3 {  return  x*x;  }
     4 double f2(double x, double y)
     5 {  return  x*y;  }
     6 double fun(double  a, double  b)
     7 {
     8 /**********found**********/
     9   double (*f)();//定义一个指针函数。
    10   double  r1, r2;
    11 /**********found**********/
    12   f = f1; 
    13   r1 = f(a);
    14 /**********found**********/
    15   f = f2;
    16   r2 = (*f)(a, b);
    17   return  r1 + r2;
    18 }
    19 void main()
    20 { double  x1=5, x2=3, r;
    21   r = fun(x1, x2);
    22   printf("
    x1=%f,  x2=%f,  x1*x1+x1*x2=%f
    ",x1, x2, r);
    23 }

    //建立一个带头节点的单向链表,并用随机函数为各个结点赋值,函数fun将单向链表结点数据域为偶数的值累加起来。

     1 #include <stdio.h>
     2 #include <conio.h>
     3 #include <stdlib.h>
     4 typedef struct aa
     5 { int data;
     6   struct aa *next;
     7 } NODE;
     8 int fun (NODE *h)
     9 { int sum=0;
    10   NODE *p;
    11   p=h->next;//首结点
    12 /*************found**************/
    13   while(p!=NULL)//注意
    14        { if(p->data%2==0)
    15              sum+=p->data;
    16 /*************found**************/
    17           p=p->next;
    18        }
    19   return sum;
    20 }
    21 NODE *creatlink(int n)
    22 { 
    23   NODE *h,*p,*s;
    24   int i;
    25   h=p=(NODE*)malloc(sizeof(NODE));
    26   for(i=1;i<n;i++)
    27   {
    28     s=(NODE*)malloc(sizeof(NODE));
    29     s->data=rand()%16;
    30     s->next=p->next;
    31     p->next=s;
    32     p=p->next;
    33   }
    34   p->next=NULL;
    35   return h;
    36 }
    37 void outlink(NODE *h)
    38 { NODE  *p;
    39   p=h->next;
    40   printf("
    
     The LIST :
    
     HEAD");
    41   while(p)
    42     { printf("->%d",p->data); 
    43       p=p->next;}
    44   printf("
    ");
    45 }
    46 void main()
    47 { NODE *head; int sum;
    48   system("CLS");
    49   head=creatlink(10);
    50   outlink(head);
    51   sum=fun(head);
    52   printf("
    SUM=%d",sum); 
    53 }

    //函数功能:判断字符串是否为回文,若是返回1,主函数输出YES。回文是指顺读和倒读都一样的字符串。

     1 #include <stdio.h>
     2 #define N 80
     3 int fun(char *str)
     4 {
     5     char *p = str;
     6     char *q = str + strlen(str) - 1;
     7     while (*p == *q)
     8     {
     9         p++; q--;
    10         if (p >= q)
    11         {
    12             return 1;
    13         }
    14     }
    15     return 0;
    16 }
    17 
    18 void main()
    19 {
    20      char s[N];
    21      FILE *out;
    22          char *test[]={"1234321","123421","123321","abcdCBA"};
    23      int i;
    24      printf("Enter a string : ");
    25      gets(s);
    26      printf("
    
    ");
    27      puts(s);
    28      if(fun(s))
    29         printf("YES
    ");
    30      else
    31         printf("NO
    "); 
    32      /************************************/
    33      out=fopen("out.dat","w");
    34      for(i=0;i<4;i++)
    35          if(fun(test[i]))
    36             fprintf(out,"YES
    ");
    37         else
    38             fprintf(out,"NO
    ");
    39      fclose(out);
    40      /************************************/
    41 }
  • 相关阅读:
    Java在ACM中的应用
    acm->stl
    残缺棋盘--状压DP
    EOJ Monthly 2019.3 A
    【CF1141E】Superhero Battle
    AtCoder Grant Contest 10.F 博弈
    莫比乌斯反演总结
    P2257 YY的GCD
    BZOJ1011 莫比乌斯反演(基础题
    HDU1695 莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/ming-4/p/10443607.html
Copyright © 2020-2023  润新知