zoukankan      html  css  js  c++  java
  • C语言:假定输入的字符串只包含字母和*号,fun函数:除了尾部的*号以外,将字符的其他*号进行全部删除,形参p已经指向字符串中最后一个字母。-利用折半查找整数m在有序数组中的位置,若找到,返回下标值,否则返回-1。

    //假定输入的字符串只包含字母和*号,fun函数:除了尾部的*号以外,将字符的其他*号进行全部删除,形参p已经指向字符串中最后一个字母。

     1 #include <stdio.h>
     2 void  fun( char *a, char *p )
     3 {
     4     char *q,m[81];//肯定是要进行再定义的。
     5     int i = 0,j;
     6     q = a;
     7     while (*q)
     8     {
     9         if (q == p)//判断地址相等,进行返回
    10         {
    11             break;
    12         }
    13         if ((*q >= 'a'&&*q <= 'z') || (*q >= 'A'&&*q <= 'Z'))
    14         {
    15             m[i++] = *q;
    16             q++;
    17         }
    18         else
    19         {
    20             q++;
    21         }
    22     }
    23     while (*p)
    24     {
    25         m[i++] = *p++;
    26     }
    27     for (j = 0; j < i; j++)//对形参数组进行数据删除,可以重新在一个数组里放入修改的值,再进行循环赋值。
    28     {
    29         a[j] = m[j];
    30     }
    31     a[j] = 0;//结束符
    32 }
    33 
    34 void main()
    35 {  char  s[81],*t;
    36    void NONO (  );
    37    printf("Enter a string:
    ");gets(s);
    38    t=s;
    39    while(*t)t++;
    40    t--;
    41    while(*t=='*')t--;
    42    fun( s , t );
    43    printf("The string after deleted:
    ");puts(s);
    44    NONO();
    45 }
    46 void NONO()
    47 {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    48   FILE *in, *out ;
    49   int i ; char s[81],*t ;
    50   in = fopen("in.dat","r") ;
    51   out = fopen("out.dat","w") ;
    52   for(i = 0 ; i < 10 ; i++) {
    53     fscanf(in, "%s", s) ;
    54     t=s;
    55     while(*t)t++;
    56     t--;
    57     while(*t=='*')t--;
    58     fun(s,t) ;
    59     fprintf(out, "%s
    ", s) ;    
    60   }
    61   fclose(in) ;
    62   fclose(out) ;
    63 }

    //利用折半查找整数m在有序数组中的位置,若找到,返回下标值,否则返回-1。

     1 #include <stdio.h>
     2 #define   N   10
     3 /************found************/
     4 int fun(int  a[], int  m )
     5 {  int  low=0,high=N-1,mid;
     6    while(low<=high)//判定条件
     7    {  mid=(low+high)/2;
     8       if(m<a[mid])
     9         high=mid-1;
    10 /************found************/
    11       else if(m > a[mid])
    12         low=mid+1;
    13       else  return(mid);
    14    }
    15    return(-1);
    16 }
    17 void main()
    18 {  int  i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m;
    19    
    20    printf("a数组中的数据如下:");
    21    for(i=0;i<N;i++) printf("%d ", a[i]);
    22    printf("Enter m: ");  scanf("%d",&m);
    23    k=fun(a,m);
    24    if(k>=0) printf("m=%d,index=%d
    ",m,k);
    25    else  printf("Not be found!
    ");
    26 }
  • 相关阅读:
    计算与软件工程作业四
    计算与软件工程作业四(一)
    计算与软件工程作业三
    计算与软件工程作业二
    计算与软件工程作业一
    4.2上机课作业
    java第三次作业
    java第一次作业 2020 3.7
    十三周上机练习
    第十二周作业
  • 原文地址:https://www.cnblogs.com/ming-4/p/10510866.html
Copyright © 2011-2022 走看看