输入一个包含数字的字符串,将其中的所有孤立数之和输出。例如:输入:a10.51b2 1c4def3.2 输出:20.71(因为10.51+2+1+4+3.2=20.71)
当出现小数点后,其后的数值的拼法为:num[numcount] = num[numcount] + (s[i]-'0')*pow(10,-(ws+1)); 同时,ws(小数位数)要增1
代码如下,如有帮助,请采纳支持一下,谢谢。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char tmp[10]={0}; //用于临时存储字符串
char buf[100]={0}; //接收字符串
int i = 0,j = 0,t;
double sum = 0;
printf("请输入一个字符串:");
gets(buf);
while(buf[i] != '\0')
{
if(buf[i]>='0' && buf[i]<='9')
tmp[j++] = buf[i];
else if(i>0 && buf[i] == '.' && (buf[i-1]>='0' && buf[i-1]<='9') )
tmp[j++] = buf[i];
else
{
if(j > 0)
{
sum += atof(tmp);
//printf("tmp =%s\n",tmp);
j=0;
for(t=0;t<10;t++)
tmp[t] = 0;
}
}
i++;
}
if(j > 0)
{
sum += atof(tmp);
//printf("tmp =%s\n",tmp);
j=0;
for(t=0;t<10;t++)
tmp[t] = 0;
}
printf("和=%g\n",sum);
return 0;
}