《C语言及程序设计》实践参考——命令行加法器

    xiaoxiao2026-05-24  18

    返回:贺老师课程教学链接

    【项目3 - 命令行加法器】 建立项目add,设计一个用命令行能运行的加法器,其中加数的个数不定: 输入:add 1 3 输出 4 输入:add 1 3.1 2 6 输出 12.1 输入:add 1 3 a 6 输出:命令行中出现非法运算量! [参考解答] #include <stdio.h> #include <stdlib.h> #include <ctype.h> double string_to_double(char *str); int main(int argc,char *argv[]) { int n; double s=0; if (argc<3) //对于命令行中参数个数有要求的程序,常用argc检查参数是否够用 { printf("参数不足,失败...\n"); } else { for (n=1; n<argc; n++) //对命令行中提供的多个参数循环 { s+=string_to_double(argv[n]); //argv中是字符串,为相加需要转换数据 } printf("%f\n", s); } return 0; } /* 将字符串转换为数字。 标准库中有类似的转换函数strtod或strtof,可以通过搜索了解 */ double string_to_double(char *str) { double ans; double k; int sign=1; ans=0; if(*str=='-') { sign = -1; str++; } else if(*str=='+') str++; while (isdigit(*str)) { ans=ans*10+*str-'0'; str++; } if (*str=='.') { *str++; k=0.1; while (isdigit(*str)) { ans+=(*str-'0')*k; k/=10; str++; } } if(*str!='\0') { printf("命令行中出现非法运算量!\n"); exit(0); } return sign*ans; }
    最新回复(0)