山科 STUST OJ Problem B: 编写函数:String to Double (II) (Append Code)
这道题没啥别的毛病,我的错误在于看不懂题。
另外还有一点是注意浮点数存在-0
1 #include <stdio.h> 2 #include <ctype.h> 3 #include <math.h> 4 #define MAX_STR_LEN 10 + 5 5 double strToDouble(char str[]){ 6 int state=0; 7 double sum1 = 0.0; 8 double sum2 = 0.0; 9 int k=1; 10 int digited=0; 11 int fuhao=1; 12 if(!str[0])return 0; 13 for(int i=0;str[i];i++){ 14 if(digited==0&&str[i]=='-') 15 { 16 digited=1; 17 fuhao = -1; 18 } 19 if(digited==0&&str[i]=='+'){ 20 digited=1; 21 fuhao = 1; 22 } 23 if(isdigit(str[i])){ 24 digited=1; 25 if(!state)sum1=10*sum1 +str[i]-'0'; 26 else sum2+=(pow(0.1,k++))*(str[i]-'0'); 27 } 28 else if(str[i]=='.'){ 29 digited=1; 30 state=1; 31 } 32 } 33 return fuhao*(sum1 + sum2); 34 } 35 36 int main() 37 { 38 char s[MAX_STR_LEN]; 39 while(gets(s) != NULL) 40 printf("%lg\n", strToDouble(s)); 41 return 0; 42 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架