C primer plus (第六版)第十一章 编程练习第14题

题目:

14.编写⼀个通过命令⾏运⾏的程序计算幂。第1个命令⾏参数是double类型的数,作为幂的底数,第2个参数是整数,作为幂的指数。

思路:

  1. 利用atof()函数把argv[1]字符串转为double类型底数;

  2. 利用atoi()函数把argv[2]字符串转为int类型整数(假定为正整数);

  3. 加入if判断带程序名是否输入3个字符串,底数是否是浮点数,次幂数输入是否正确(浮点数

的次幂数貌似只取整数部分);

  1. 结果计算用for循环累乘计算;

程序:

cpp 复制代码
/*--------------------------------------------------------------------------------
题目:
14.编写⼀个通过命令⾏运⾏的程序计算幂。第1个命令⾏参数是double类型的数,作为幂的底数,
第2个参数是整数,作为幂的指数。
--------------------------------------------------------------------------------
思路:
1. 利用atof()函数把argv[1]字符串转为double类型底数;
2. 利用atoi()函数把argv[2]字符串转为int类型整数(假定为正整数);
3. 加入if判断带程序名是否输入3个字符串,底数是否是浮点数,次幂数输入是否正确(浮点数
的次幂数貌似只取整数部分);
4. 结果计算用for循环累乘计算;
--------------------------------------------------------------------------------*/

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    double base_num;            //底数
    unsigned int pow_num;       //次幂数
    double result = 1.0;        //计算结果

    if( argc = 3 && (base_num = atof(argv[1])) && (pow_num = atoi(argv[2]))){
        for (int i = 0; i < pow_num; i++)
            result = result * base_num;
        printf("%lf pow %d = %lf", base_num, pow_num, result);      //打印结果
    }
    else{
        printf("There are something wrong.\n");
    }

    printf("\nbase number =%s",argv[1]);        //测试用
    printf("\npow number =%s",argv[2]);         //测试用
    
    return 0;
}

运行:

和13题类似,需要修改exe文件名,并在文件夹内打开shell终端,然后命令行运行程序,例如程序名称pow,计算1.2底数3次幂:

相关推荐
wangjialelele2 小时前
平衡二叉搜索树:AVL树和红黑树
java·c语言·开发语言·数据结构·c++·算法·深度优先
森G2 小时前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
weixin_395448913 小时前
mult_yolov5_post_copy.c_cursor_0205
c语言·python·yolo
Z9fish3 小时前
sse哈工大C语言编程练习20
c语言·开发语言·算法
晓13133 小时前
第六章 【C语言篇:结构体&位运算】 结构体、位运算全面解析
c语言·算法
梵刹古音3 小时前
【C语言】 指针与数据结构操作
c语言·数据结构·算法
刘琦沛在进步4 小时前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
VekiSon5 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
2的n次方_6 小时前
CANN Ascend C 编程语言深度解析:异构并行架构、显式存储层级与指令级精细化控制机制
c语言·开发语言·架构
_F_y6 小时前
C语言重点知识总结(含KMP详细讲解)
c语言·开发语言