zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Shell编程之运算符和环境变量配置文件
    Shell编程之变量
    PCI BAR设置过程[转]
    基于ARM的SoC设计入门[转]
    负载均衡
    [转]vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess
    VC/DDK/DriverWorks开发环境配置
    windows下注册表脚本编写
    _cdecl与_stdcall区别
    在C语言中破坏函数调用堆栈
  • 原文地址:https://www.cnblogs.com/ming-4/p/10580660.html
Copyright © 2011-2022 走看看