博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。-使字符串的前导*号不得多于n个,若多余n个,则删除多余的*号,...
阅读量:4950 次
发布时间:2019-06-11

本文共 2614 字,大约阅读时间需要 8 分钟。

//fun函数:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

1 #include 
2 void fun( char *p ) 3 { char max,*q; int i=0; 4 max=p[i]; 5 while( p[i]!=0 ) 6 { if( max
p )15 { *q=*(q-1);//进行顺序后移。16 q--;17 }18 p[0]=max;19 }20 void main()21 { char str[80];22 printf("Enter a string: "); gets(str);23 printf("\nThe original string: "); puts(str);24 fun(str);25 printf("\nThe string after moving: "); puts(str); printf("\n\n");26 }

//fun函数:根据一下公式求圆周率值,并作为函数返回值。Π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+...

1 #include 
2 #include
3 double fun(double eps) 4 { double s,t; int n=1; 5 s=0.0; 6 /************found************/ 7 t=1.0; 8 while( t>eps) 9 { s+=t;10 t=t * n/(2*n+1);11 n++;12 }13 /************found************/14 return (s*2);15 }16 void main()17 { double x;18 printf("\nPlease enter a precision: "); scanf("%lf",&x);19 printf("\neps=%lf, Pi=%lf\n\n",x,fun(x));20 }

//规定输入的字符串中只包含字母和*号,fun函数:使字符串的前导*号不得多于n个,若多余n个,则删除多余的*号,若少于或等于n个,则不做处理,字符串尾部和中间的*号不删除。

1 #include 
2 void fun( char *a, int n ) 3 { 4 char *b; 5 b = a; 6 int i = 0; 7 while (!('A' <= *b&&*b <= 'Z')) 8 { 9 //printf("%c\n", *b);10 b++;11 i++;12 }13 if (i > n)14 {15 a = a + n;//注意位置不在while里面16 while (*b != '\0')17 {18 *a = *b;19 a++;20 b++;21 }22 *a = '\0'; 23 }24 }25 26 void main()27 { char s[81]; int n;void NONO ();28 printf("Enter a string:\n");gets(s);29 printf("Enter n : ");scanf("%d",&n);30 fun( s,n );31 printf("The string after deleted:\n");puts(s);32 NONO();33 }34 void NONO ()35 {
/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */36 FILE *in, *out ;37 int i, n ; char s[81] ;38 in = fopen("in.dat","r") ;39 out = fopen("out.dat","w") ;40 for(i = 0 ; i < 10 ; i++) {41 fscanf(in, "%s", s) ;42 fscanf(in, "%d", &n) ;43 fun(s,n) ;44 fprintf(out, "%s\n", s) ; 45 }46 fclose(in) ;47 fclose(out) ;48 }

//使用数组完成:

void  fun( char *a, int  n ) {
   char b[81];    int z = 0;    while (*a != '\0')    {
    b[z] = *a ;     z++; a++;    }    a = a - z;//指针位置返还    b[z] = '\0';//标记结束    int i = 0;    while (!(b[i]>='A'&&b[i] <= 'Z'))    {
    i++;    }    if (i > n)    {
    a = a + n;     while (b[i]!='\0')     {
     *a = b[i];      //printf("%c\n", *a);      a++;      i++;     }     *a ='\0';    }    }

 

转载于:https://www.cnblogs.com/ming-4/p/10551482.html

你可能感兴趣的文章
VS2013 C++代码运行问题
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
LUOGU P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…
查看>>
toad for oracle中文显示乱码
查看>>
scala的REPL shell的调用
查看>>
SQL中Group By的使用
查看>>
Mybatis映射原理,动态SQL,log4j
查看>>
哪个微信编辑器比较好用?
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
gdb调试中出现No symbol table is loaded. Use the "file" command.问题
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
图像加载
查看>>
关于zxing生成二维码,在微信长按识别不了问题
查看>>
Haskell学习-高阶函数
查看>>
手动通知扫描SD卡主动生成缩略图
查看>>
js中tagName和nodeName
查看>>