注意细节
修改题里,(*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);
}
本文详细介绍了使用C语言处理字符串和数组的各种技巧,包括字符串中奇数位置字符的排序、精度控制下的浮点数输出、数组元素的循环左移以及二维数组到一维数组的转换等实用代码片段。

被折叠的 条评论
为什么被折叠?



