帮忙看一下这个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) ;
}
谁会?帮我改一下 注明题号 谢谢 给我所有分! 展开
请填写下划线内容: (不能增删行,不能改结构)
#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) ;
}
谁会?帮我改一下 注明题号 谢谢 给我所有分! 展开
3个回答
展开全部
第一题:(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;
}
第二题:(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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最讨厌这种题目了,比我自己把整个程序都写出来还麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询