首页 > 其他分享 >cpp_9_8.9【(修改函数)计算一个数的p次幂】

cpp_9_8.9【(修改函数)计算一个数的p次幂】

时间:2024-11-07 21:15:13浏览次数:3  
标签:函数 power 8.9 double Enter int exp printf cpp

#include <stdio.h>

double power(double n, int p); // ANSI函数原型

int main(void){

    double x, xpow;
    int exp;

    printf("Enter a number and the positive integer power");
    printf(" to which\nthe number will be raised. Enter q");
    printf(" to quit.\n");
    while (scanf("%lf%d", &x, &exp) == 2){

        xpow = power(x, exp); // 函数调用
        printf("%.3g to the power %d is %.5g\n", x, exp,xpow);
        printf("Enter next pair of numbers or q to quit.\n");

    }
    printf("Hope you enjoyed this power trip -- bye!\n");
    return 0;
}


double power(double n, int p) // 函数定义{

    double pow = 1;
    int i;

    for (i = 1; i <= p; i++)
    pow *= n;

    return pow; // 返回pow的值

}

改进以上函数,使其能正确计算负幂。另外,函数要处理0的任何次幂都为0,任何数的0次幂都为1(函数应报告0的0次幂未定义, 因此把该值处理为1)。要使用一个循环,并在程序中测试该函数。

#include <stdio.h>
double power(double n, int p); // ANSI函数原型
int main(void){
    
    double x, xpow;
    int exp;

    printf("Enter a number and the positive integer power");
    printf(" to which\nthe number will be raised. Enter q");
    printf(" to quit.\n");

    while (scanf("%lf%d", &x, &exp) == 2){

        xpow = power(x, exp); // 函数调用
        printf("%.3g to the power %d is %.5g\n", x, exp,xpow);
        printf("Enter next pair of numbers or q to quit.\n");

    }

    printf("Hope you enjoyed this power trip -- bye!\n");

    return 0;

}


double power(double n, int p){
	
    double pow = 1;
    
    if(n!=0){
    	
    	if(p>0){
    		
    		int i;
    		
            for (i = 1; i <= p; i++){
            	
            	pow *= n;
                
			}
            return pow;
		}
		
		else if(p<0){
			
			int i;
			
            for (i = 1; i <= (-p); i++){
            	
            	pow *= n;
            	
			}
            pow=1/pow;
            return pow;

		}
		
		else
    	    return 1;
    	
	}
    
    else
		return 0;

}

使用递归函数重写上述代码

#include<stdio.h>

double power(double n, int p);

int main(){

	double n;
	int p;
	int c;

	while(1){

		printf("Enter the value of the number and its power that you want to calculate(enter 'q' to quit):");
		c=scanf("%lf %d",&n,&p);
		if(c!=2)
			return 0;
		else{

			printf("The value you want is:%lf \n\n",power(n,p));

		}

	}

}

double power(double n, int p){

    double pow = 1;

    if(n!=0){

    	if(p>0){
    		
            pow=n*power(n,p-1);
            
            return pow;
		}

		else if(p<0){
			
			p=-p;
			pow=n*power(n,p-1);
            pow=1/pow;
            return pow;

		}

		else
    	    return 1;

	}

    else
		return 0;

}

标签:函数,power,8.9,double,Enter,int,exp,printf,cpp
From: https://blog.csdn.net/2403_87560502/article/details/143472443

相关文章

  • cpp_9【用指针在更改主函数中的变量值】
    5.编写并测试一个函数larger_of(),该函数把两个double类型变量的值替换为较大的值。例如,larger_of(x,y)会把x和y中较大的值重新赋给两个变量。#include<stdio.h>voidlarger_of(double*x,double*y){ if(*x>*y){ *y=*x; } elseif(*y>*x){......
  • hive函数
    一、查看函数showfunctions;  --查看所有的函数descfunctionfunctionName;-查看某个具体的函数如何使用二、基础函数2.1、日期函数1.current_date();    #当前系统日期      格式:"yyyy-MM-dd"2.current_timestamp();  #当前系统时间戳......
  • js 的generator函数是什么
    在JavaScript中,Generator函数(生成器函数)是一种特殊类型的函数,它可以暂停执行并且可以在后续的某个时刻恢复执行。与普通函数不同,Generator函数不会在调用时立即执行,而是返回一个Generator对象,你可以通过该对象控制函数的执行过程。1.如何定义一个Generator函数Generato......
  • 函数的间断点问题
    函数是数学分析中的重要概念,而函数的连续性与间断性是研究函数行为的基础。今天,我们来聊一聊函数的间断点,介绍什么是函数的连续性、不同类型的间断点,以及一些特殊的讨论情况。函数的连续性和间断性我们首先来回顾一下函数在某一点连续的定义。设有函数\(f(x)\),如果\(x=a\)......
  • 构造函数原型对象语法、原型链、原型对象
    目录一、前言二、编程思想面向过程面向对象三、构造函数四、原型对象constructor属性对象原型原型继承原型链一、前言  通过本篇博客,我们将了解面向对象编程的一般特征,掌握基于构造函数原型对象的逻辑封装,掌握基于原型对象实现的继承,理解什么原型链及其作用......
  • 生产环境中使用:带有核函数的 SVM 处理非线性问题
            在逻辑回归中,我们可以通过引入 核方法(KernelTrick) 来处理非线性关系。虽然逻辑回归本身不直接支持核方法,但我们可以借助特征转换工具来手动实现类似的效果。不过,更常见的是在 支持向量机(SVM) 中应用核方法,这里我们将介绍如何使用 带有核函数的SVM 来处......
  • [python turtle summary] Python 海龟画图 函数总结
    Turtle文档导入turtleimportturtleastimportturtlefromturtleimport*Turtle函数方法移动和绘制penup()抬笔pendown()落笔goto(x,y)移动forward(distance)|fd(distance)前进backward(distance)|back(distance)|bk(distance)后退right(angle)|rt(ang......
  • python画图|hist()函数深层体验
    【1】引言前述学习已经掌握hist()函数的基本运用技巧,可通过下述链接直达:python画图|hist()函数画直方图初探-CSDN博客 python画图|hist()函数画直方图进阶-CSDN博客我们已经理解hist()函数本质上画的是概率分布图,相关知识属于数理统计范畴,日常运用较多。为进一步实现运用......
  • c语言中函数体中的变量声明不能使用和形参相同的变量名
     001、[root@PC1test]#lstest.c[root@PC1test]#cattest.c#include<stdio.h>intmax(inta,intb)//创建一个名为max的函数{intk=100;if(a>b){returna;}......
  • 函数基础(上)
    九函数基础(上)9.1函数简介之前一直有使用内置函数print()、input()、sum()、len()、max()函数:可以用来保存代码,在需要的时候,对这些可执行代码进行重复利用总结遇到重复功能的时候,直接调用即可,减少工作代码量提升项目结构性,分工明确提高可读性维护起来,方便9......