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次幂:

相关推荐
南棱笑笑生2 分钟前
20251219给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-5.10】后解决启动不了报atf-2的问题
linux·c语言·开发语言·rockchip
xie_pin_an10 小时前
深入浅出 C 语言数据结构:从线性表到二叉树的实战指南
c语言·数据结构·图论
总爱写点小BUG14 小时前
打印不同的三角形(C语言)
java·c语言·算法
xie_pin_an18 小时前
C 语言排序算法全解析:从原理到实战,附性能对比
c语言·算法·排序算法
再睡一夏就好19 小时前
深入解析Linux页表:从虚拟地址到物理内存的映射艺术
linux·运维·服务器·c语言·c++·页表·缺页异常
LinHenrY122720 小时前
初识C语言(编译和链接)
c语言·开发语言·蓝桥杯
l1t20 小时前
利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
c语言·开发语言·javascript·人工智能·算法
松涛和鸣20 小时前
34、 Linux IPC进程间通信:无名管道(Pipe) 和有名管道(FIFO)
linux·服务器·c语言·网络·数据结构·数据库
秦苒&20 小时前
【C语言】详解数据类型和变量(一):数据类型介绍、 signed和unsigned、数据类型的取值范围、变量、强制类型转换
c语言·开发语言·c++·c#
LinHenrY122720 小时前
初识C语言(文件操作)
c语言·windows·microsoft