C语言求x的y次方,自定义函数,自己的算法

我是一名高二中学生,初中时接触电脑,非常酷爱电脑技术,自己百度学习了有两年多了,编程语言也零零散散的学习了一点,想在大学学习计算机专业,所以现在准备系统的学习C语言,并在博客中与大家分享我学习中的心得与思路。希望大牛路过的时候指点指点。

可以说是第N次学习C语言了,都是学到数组和函数这里停止了,这次下定了决心要学完C语言,不光要学完,还要学好下面是利用自定义函数写的一个模仿pow()函数工作的一个小程序[求x的y次方]
 1 #include<stdio.h>
 2
 3 int main(void)
 4 {
 5
 6     double power(double x, double y);
 7     double x, y;
 8     printf("请输入底数后按回车\n");
 9     scanf("%lf", &x);
10     printf("请输入指数后按回车\n");
11     scanf("%lf", &y);
12     printf("%lf的%lf次方是%lf", x, y, power(x, y));
13     return 0;
14
15 }
16
17 double power(double x, double y)
18 {
19     double a, b ,c=x;
20     for( a = 1; a < y; a++)
21     {
22         b = x;
23         c = c*b;
24     }
25
26     return c;
27 }
上面代码的大体思路是这样的利用scanf()函数接受用户输入的底数x,指数y。并赋值给x,y,在printf()函数中调用power()[自定义函数];power()[自定义函数]是这样工作的:a变量:储存结束循环的值b变量:用来保证底数不变c变量:用来保证底数相乘y-1次的结果for()循环:a<y:来保证x自乘y次以达到x的y次方b=x:用来保证底数不变c=c*b:前面c已经被赋值为x,第一次循环时c被作为底数,底数与底数自乘,之后是作为底数被相乘y-1次的结果来与底数相乘

如此简单地程序讲解的这么粗糙,我都有些不好意思发了,但还是下定决心发了,希望看到的大牛给我指点指点,新手看不懂的地方也告诉我一下,我在改进下讲解方法,谢谢。
				
时间: 2024-12-14 18:08:53

C语言求x的y次方,自定义函数,自己的算法的相关文章

C++刷题——2713: 函数---求x的y次方

编写函数POW,函数声明如下: int POW(int x,int y); //求x的y次方的函数声明 在以下程序的基础上,添加POW函数的定义,使程序能够正确执行. /* All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 5 月 22 日 * 版 本 号:v1.0 */ #include <iostream> using namespace std; int POW(int x,int y); //求x的y次方的函数声明 i

OJ刷题之《求a的b次方》

题目描述 编写函数POW,函数声明如下: int POW(int x,int y); //求x的y次方的函数声明 在以下程序的基础上,添加POW函数的定义,使程序能够正确执行. 提交时,只需要提交POW函数的定义代码即可. #include <iostream> using namespace std; int POW(int x,int y); //求x的y次方的函数声明 int main() { int a,b; cin>>a>>b; cout<<a&l

【C语言】求数值的正数次方

//数值的正数次方 //实现函数double power(double base, int exponent),求base的exponent次方,不得使用库函数,不需要考虑大数问题. //注意:考虑非法输入的返回. #include <stdio.h> #include <math.h> bool Inpot_illegal = false; bool equal(double num1, double num2) //判断两数是否相等 { if ((num1 - num2) &g

C语言求质数的算法

前言 上次被出了一题质数的C语言求解题目(面试),当时用了最粗暴的算法,回来仔细参考资料,其实答案有很多种: 1,小学生版本: 判断 x 是否为质数,就从 2 一直算到 x-1. static rt_uint32_t array1[ARRAY_LEN]; void func1(void) { for (rt_uint32_t i = 1; i <= ARRAY_LEN; i++) { array1[i - 1] = 0; } rt_uint32_t x, y = 0, z = 0; rt_uin

C语言——求最大公约数及最小公倍数

基本概念 最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数.整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号. 最大公约数:也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个.a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号. 关于最小公倍数与最大公约数,我们有这样的定理:(a,b)[a,b]=ab(a,b均为整数). 方法分析 最大公

a^b(快速幂) 求 a 的 b 次方对 p 取模的值。

题目详情 求 a 的 b 次方对 p 取模的值. 输入格式 三个整数 a,b,p在同一行用空格隔开. 输出格式 输出一个整数,表示a^b mod p的值. 数据范围 0≤a,b,p≤10^9 输入样例: 3 2 7 输出样例: 2 问题解决 正常来说,计算机每秒可运算10^7-10^8次(以c++语言来说)所以这题如果用循环一个个的来乘,最大有10^9的运算量,有可能超时.应采用快速幂算法,运算量则会降为log级别的! 以上面提供的数据来说明 快速幂: 7转化为二进制为1112^0=12^1=2

50 Pow(x, n)(求x的n次方Medium)

题目意思:x为double,n为int,求x的n次方 思路分析:直接求,注意临界条件 1 class Solution { 2 public: 3 double myPow(double x, int n) { 4 if(x==1.0)return x; 5 else if(x==-1.0){ 6 if(n%2==0)return 1.0; 7 else return -1.0; 8 } 9 double ans=1.0; 10 int flag=abs(n); 11 while(flag--&

递归练习之求 x 的 N 次方

/********************************************************************************* Copyright (C), 1988-1999, drvivermonkey. Co., Ltd. File name: Author: Driver Monkey Version: Mail:[email protected] qq:196568501 Date: 2014.04.02 Description: 递归练习之求 x

C语言中的自定义函数

C语言中可以使用系统函数也可以使用自己的函数,就是自定义函数 自定义函数分为四种 第一种:无参无返回值的 函数的声明 void sayH(); 函数的实现 void sayH(){ printf("你好"); } 第二种:有参数无返回值 函数的声明: void pxsbx(int c,int k); 函数的实现: void pxsbxx(int c,int k){ int i,j; for (i=0; i<c; i++) { for (j=0; j<=i; j++) { p