难度:一颗星
- 将形参s所指字符串中的数字字符转换成相对应的数值,计算出这些数值的累加和作为函数值返回。
思路:由下图可知第48个码才为字符’0’,所以要想将数字字符转换成相对应的数字,只需要减去48或者减去’0 '即可。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int fun(char *s)
{ int sum=0;
while(*s) {
if( isdigit(*s) )
sum+= *s- 48 ;//或者sum+=*s-'0';
s++;
}
return sum ;
}
void main()
{ char s[81]; int n;
printf("\nEnter a string:\n\n"); gets(s);
n=fun(s);
printf("\nThe result is: %d\n\n",n);
}
- 求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
直接贴代码
#include <math.h>
#include <stdio.h>
double fun( int n)
{
double s=0.0;
int i=21;
while(i<=n)
{
if((i%3==0)&&(i%7==0))
s+=i;
i++;
}
return sqrt(s);
}
void main() /* 主函数 */
{
printf("s =%f\n", fun (1000));
}
有时候简单的题也不一定能做对,一定要仔细审题才好…