真题三十七、三十八、三十九

本文详细介绍了使用C语言处理字符串和数组的各种技巧,包括字符串中奇数位置字符的排序、精度控制下的浮点数输出、数组元素的循环左移以及二维数组到一维数组的转换等实用代码片段。

注意细节 

修改题里,(*s)++改成s++,一定要把括号去掉

while(最好是填字符,单向链表填p,字符串数组填*p)//判断字符串是否结束

//将字符串中标为奇数的字符取出,从小到大排列
void fun(char  *s, char  *p)
{  int  i, j, n, x, t;
   n=0;
   for(i=0; s[i]!='\0'; i++)  n++;
   for(i=1; i<n-2; i=i+2) {
/**********found**********/
      t=i;//取出下标为奇数的字符
/**********found**********/
      for(j= i+2 ; j<n; j=j+2)//对奇数排列数序
        if(s[t]>s[j]) t=j;
      if(t!=i)
      {  x=s[i]; s[i]=s[t]; s[t]=x; }
   }
   for(i=1,j=0; i<n; i=i+2, j++)  p[j]=s[i];
/**********found**********/
   p[j]='\0';
}
//小于某一精度输出
float fun ( float num )
{   int s ;
    float n, t, pi ;

    t = 1.0 ; pi = 0 ; n = 1.0 ;  s = 1.0 ;
/**************found**************/
    while( fabs(t)>= num)
    {
        pi = pi + t ;
        n = n + 2 ;
        s = -s ;
/**************found**************/
        t = s / n ;
    }
    pi = pi * 4 ;
    return pi ;
}
//循环左移
void  fun(int  *w, int  p, int  n)
{
	int t,j;
	for (int i = 1; i <=p+1; i++)
	{
		t = w[0];
		for ( j = 0; j < n; j++)
			w[j - 1] = w[j];
			w[j - 1] = t;
	}
}
//将二维数组按列存放到一维数组中
void fun(char (*s)[N],char *b)
{
	int k = 0;
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j<M; j++)
		{
			b[k++] = s[j][i];
		}
	}
	b[k] = '\0';//和数字数组类似,多了字符串结束符
}
#include  <stdio.h>
void fun(char  *s, int  a, double  f)
{
/**********found**********/
  FILE*  fp;//定义文件类型指针
  char  ch;
  fp = fopen("file1.txt", "w");
  fprintf(fp, "%s %d %f\n", s, a, f);
  fclose(fp);
  fp = fopen("file1.txt", "r");
  printf("\nThe result :\n\n");
  ch = fgetc(fp);
/**********found**********/
  while (!feof(fp)) //feof函数只能对文件类型进行操作 
{
/**********found**********/
    putchar(ch); //输入一个字符
	ch = fgetc(fp);  
}
    putchar('\n');
    fclose(fp);
}
void main()
{ char  a[10]="Hello!";    int  b=12345;
  double  c= 98.76;
  fun(a,b,c);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值