求二级C语言问题,各种求,职业求,真心求,万分火急!!!!!

fun的功能:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数返回值,例如s为asd123fgh5##43df,处理后变为12... fun的功能:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数返回值,例如s为 asd123fgh5##43df,处理后变为123543asdfgh##df

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{ if(isdigit(s[i])) {
/**********found**********/
p[__1__]=s[i]; j++;}
else
{ t[k]=s[i]; k++; }
}
/**********found**********/
for(i=0; i<__2__; i++) p[j+i]= t[i];
p[j+k]=0;
/**********found**********/
return __3__;
}
main()
{ char s[80];
printf("Please input: "); scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));
}

2 改错题
#include <stdio.h>
#include <string.h>

void fun( char *a, char *b, char *c )
{
int i , j; char ch;
i = 0; j = strlen(b)-1;
/************found************/
while ( i > j )
{ ch = b[i]; b[i] = b[j]; b[j] = ch;
i++; j--;
}
while ( *a || *b ) {
/************found************/
If ( *a )
{ *c = *a; c++; a++; }
if ( *b )
{ *c = *b; c++; b++; }
}
*c = 0;
}

main()
{
char s1[100],s2[100],t[200];
printf("\nEnter s1 string : ");scanf("%s",s1);
printf("\nEnter s2 string : ");scanf("%s",s2);
fun( s1, s2, t );
printf("\nThe result is : %s\n", t );
}

3
fun的功能:将s所指下标为偶数同时ASCII为奇数的字符删除
#include <stdio.h>
#include <string.h>

void fun(char *s, char t[])
{

}

main()
{
char s[100], t[100];void NONO ();
printf("\nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("\nThe result is: %s\n", t);
NONO();
}

void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
char s[100], t[100] ;
FILE *rf, *wf ;
int i ;

rf = fopen("K:\\C3145\\24A01002\\in.dat","r") ;
wf = fopen("K:\\C3145\\24A01002\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s", s) ;
fun(s, t) ;
fprintf(wf, "%s\n", t) ;
}
fclose(rf) ;
fclose(wf) ;
}
展开
 我来答
百度网友66c5afb
2010-09-19 · TA获得超过349个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:261万
展开全部
第一题
1、p[j]
2、i<n
3、return p

第二题
你没说题目要求..我不知道改成什么样就算对的。。
1、没改
2、If改成if
输入123回车abcd回车
输出结果为1a2b3cd

第三题
void fun(char *s, char t[])
{
int i=0;
int j=0;
while (*(s+i)!='\0')
{
if(i%2!=0) //判断下标是否为偶数
if(*(s+i)%2==0) //判断ASCII是否为奇数
t[j++]=*(s+i);//复制串
i++;
}
t[j]='\0';
}
不敢说完全正确。。我没查ascII对应没有
zenghao0708
2010-09-19 · 超过22用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:62.2万
展开全部
我觉得第一题 :
第二问是 i<k不过i<n貌似算的也对的
第二题 我估计是要把b数组首尾互换吧
那就改为 i<j
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式