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

题目:

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

思路:

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

  2. 利用atoi()函数把argv2字符串转为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次幂:

相关推荐
SuperByteMaster5 小时前
timer.c 介绍
c语言
qq_448011167 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
luj_176810 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
wuyk55510 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
Lzh编程小栈11 小时前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
凉茶钱12 小时前
【数据结构】堆的应用
c语言·数据结构
Herbert_hwt16 小时前
【C语言基础】常量、选择结构与运算符全解析
c语言·开发语言·算法
WWJA王文举1 天前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
qq_448011161 天前
C语言中的动态内存分配
c语言·开发语言·php
动词ing1 天前
【学习笔记】C语言(数组指针与指针数组+字符数组+函数+参数传递+字符串作为形参+递归函数+指针函数+回调函数+结构体嵌套+内存动态分配函数)
c语言·笔记·学习