• C语言:判断t所指字符串中的字母是否由连续递增字母组成。-判断一个输入的任何整数n,是否等于某个连续正整数序列之和。-将一副扑克牌编号为1到54,以某种方式洗牌,这种方式是将这副牌分成两半,然后将他们交叉,并始终保持编号1的牌在最上方。


    //判断t所指字符串中的字母是否由连续递增字母组成。

     1 #include   <stdio.h>
     2 #include  <string.h>
     3 void NONO();
     4 int  fun( char  *t )
     5 {
     6     int a = 0; 
     7     //使用数组解决
     8     /*for (int i = 1; t[i]!= ''; i++)
     9     {
    10         if ((t[i]-'0') != (t[i - 1] -'0'+1)) a = 1;
    11     }*/
    12     //使用指针解决
    13     while (*(t+1) != '')//注意这里表达式的书写
    14     {
    15         //printf("%d,%d
    ", *t, *(t + 1));//通过输出语句发现问题
    16         if ((*t - '0' + 1) != (*(t+1) - '0')) { a = 1; break; }
    17         t++;
    18     }
    19     if (a == 0) return 1;
    20     else if (a == 1) return 0;
    21 }
    22 
    23 void main()
    24 {  char  s[26];
    25    printf("请输入一个字母组成的字符串 :  "); gets(s);
    26    if( fun(s) )  printf("%s 是由连续字母组成的字符串.
    ", s );
    27    else   printf("%s 不是由连续字母组成的字符串!
    ", s );
    28    NONO();
    29 }
    30 
    31 void NONO()
    32 {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    33   FILE *fp, *wf ;
    34   int i;
    35   char s[26], *p;
    36 
    37   fp = fopen("in.dat","r") ;
    38   wf = fopen("out.dat","w") ;
    39   for(i = 0 ; i < 10 ; i++) {
    40     fgets(s, 26, fp);
    41     p=strchr(s,'
    ');
    42     if(p) *p=0;
    43     if (fun(s)) fprintf(wf, "%s
    ", s+2);
    44     else  fprintf(wf, "%s
    ", strrev(s));
    45   }
    46   fclose(fp) ;
    47   fclose(wf) ;
    48 }

    //判断一个输入的任何整数n,是否等于某个连续正整数序列之和。

     1 #include   <stdio.h>
     2 void fun( int  n )
     3 {  int  j, b, c, m, flag=0;
     4    for (b=1; b<=n/2; b++) { 
     5 /**********found**********/
     6       m = n;
     7       c = b;
     8       while (m !=0 && m>=c) {
     9 /**********found**********/
    10           m = m - c;    c++;
    11       }
    12 /**********found**********/
    13       if ( m==0)
    14       {  printf("%d=", n);
    15          for (j=b; j<c-1; j++)   printf( "%d+", j  );
    16          printf("%d
    ", j);
    17          flag=1;
    18       }
    19    }
    20    if(flag==0)
    21      printf("不能分解
    ");
    22 }
    23 void main()
    24 {  int  n;
    25    printf("请输入一个整数 :   ");   scanf("%d", &n);
    26    fun(n);
    27 }

    //将一副扑克牌编号为1到54,以某种方式洗牌,这种方式是将这副牌分成两半,然后将他们交叉,并始终保持编号1的牌在最上方。

     1 #include  <stdio.h>
     2 void  fun( int  a[55], int  n )
     3 {  int  i, k  ;
     4 /**********found**********/
     5    int  b[55];
     6    for (i=0; i<n; i++) 
     7    {  for (k=1; k<= 27; k++) 
     8       {  b[ 2*k-1 ] = a[k];
     9 /**********found**********/
    10          b[ 2* k ] = a[k+27];
    11      }
    12      for (k=1; k<=54; k++)
    13 /**********found**********/
    14        a[k]=b[k];
    15    }
    16 }
    17 void main( )
    18 {  int  m, a[55],i;
    19    for (i=1; i<55; i++)   a[i]= i;
    20    printf("请输入洗牌次数 :    ");   scanf("%d", &m);
    21    fun(a, m);
    22    for (i=1; i<55; i++)   printf("%d,",a[i]);
    23    printf("
    ");
    24 }
  • 相关阅读:
    paip.提升性能---- 网站并发数的总结.txt
    paip.mysql 5.6 安装总结
    UIView上添加了一个按钮和一个单击手势的事件相应,互相不影响的处理方法。。
    paip.mysql备份慢的解决
    paip.输入法编程---词频顺序order by py
    paip.超实用 360浏览器最近频繁奔溃解决流程.
    hdu 4044 GeoDefense (树形dp | 多叉树转二叉树)
    给定一个字符串,仅由a,b,c 3种小写字母组成。
    汉语-词语:心境2
    汉语-词语:休咎
  • 原文地址:https://www.cnblogs.com/ming-4/p/10580660.html
Copyright © 2020-2023  润新知