帮忙看一下这个C语言程序

1,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串:32486和12... 1,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831.
请填写下划线内容: (不能增删行,不能改结构)
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 9
long ctod( char *s )
{ long d=0;
while(*s)
if(isdigit( *s)) {
/**********found**********/
d=d*10+*s-__1__;
/**********found**********/
__2__; }
return d;
}
long fun( char *a, char *b )
{
/**********found**********/
return __3__;
}
main()
{ char s1[N],s2[N];
do
{ printf("Input string s1 : "); gets(s1); }
while( strlen(s1)>N );
do
{ printf("Input string s2 : "); gets(s2); }
while( strlen(s2)>N );
printf("The result is: %ld\n", fun(s1,s2) );
}

2,fun功能是:分别统计字符串中大写字母和小写字母的个数。例如:给定字符串S输入:AAaaBBb123CCccccd,则输出结果:upper=6,lower=8.
改正程序错误,使他能计算出正确结果。(不能改动main函数 不能增删行,不能改结构)
#include <stdio.h>
/**********found**********/
void fun ( char *s, int a, int b )
{
while ( *s )
{ if ( *s >= 'A' && *s <= 'Z' )
/**********found**********/
*a=a+1 ;
if ( *s >= 'a' && *s <= 'z' )
/**********found**********/
*b=b+1;
s++;
}
}

main( )
{ char s[100]; int upper = 0, lower = 0 ;
printf( "\nPlease a string : " ); gets ( s );
fun ( s, & upper, &lower );
printf( "\n upper = %d lower = %d\n", upper, lower );
}

3,请编一个fun,函数功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如,实型数为1234.567,则函数返回1234.570000;实型数为1234.564,则函数返回1234.560000。。(不能改动main函数和其他函数 仅在函数fun的花括号中填写若干语句)
#include <stdio.h>
float fun ( float h )
{

}

main( )
{ float a;void NONO ();
printf ("Enter a: "); scanf ( "%f", &a );
printf ( "The original data is : " );
printf ( "%f \n\n", a );
printf ( "The result : %f\n", fun ( a ) );
NONO( );
}

void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int i ;
float a ;
FILE *rf, *wf ;

rf = fopen("K:\\k32\\24000821\\in.dat","r") ;
wf = fopen("K:\\k32\\24000821\\out.dat","w") ;
for(i = 0 ; i < 20 ; i++) {
fscanf(rf, "%f", &a) ;
fprintf(wf, "%f\n", fun(a)) ;
}
fclose(rf) ;
fclose(wf) ;
}

谁会?帮我改一下 注明题号 谢谢 给我所有分!
展开
 我来答
pyfain
2008-04-13 · 超过20用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:62.4万
展开全部
第一题:(1)'0'(2)s++(3)ctod(a)+ctod(b)
第二题:(1)void fun ( char *s, int *a, int *b )(2)++(*a);(3)++(*b);
第三题:float fun ( float h )
{
long i=h*1000;
if(i%10<5) return (i/10)/100.0;
else return (i/10+1)/100.0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PcrazyC
2008-04-12 · TA获得超过1466个赞
知道小有建树答主
回答量:911
采纳率:0%
帮助的人:922万
展开全部
最讨厌这种题目了,比我自己把整个程序都写出来还麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d127579
2008-04-12 · TA获得超过1663个赞
知道小有建树答主
回答量:634
采纳率:0%
帮助的人:0
展开全部
1、
long ctod( char *s )
{ long d=0;
while(*s)
if(isdigit( *s)) {
/**********found**********/
d=d*10+*s-'0';
/**********found**********/
s++; }
return d;
}
long fun( char *a, char *b )
{
/**********found**********/
return ctod(a)+ctod(b);
}

2、
#include <stdio.h>
/**********found**********/
void fun ( char *s, int* a, int* b )
{
while ( *s )
{ if ( *s >= 'A' && *s <= 'Z' )
/**********found**********/
*a=*a+1 ;
if ( *s >= 'a' && *s <= 'z' )
/**********found**********/
*b=*b+1;
s++;
}
}

3、
#include <stdio.h>
float fun ( float h )
{
return ((int)(h*100+0.5))/100.0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式