2、程序中的代码及介绍
- 格式:ppt
- 大小:442.00 KB
- 文档页数:12


输入半径求圆的面积c语言1. 前言圆是一种具有独特美感的几何图形,其无限接近于完美的对称和平衡让人忍不住惊叹。
而圆的计算却显得十分简单,只需要知道圆的半径,就可以推算出它的面积和周长。
本文将介绍如何使用C语言计算圆的面积。
2. 程序代码计算圆面积的公式为:π*r^2,其中π是圆周率,约等于3.14159,r是圆的半径。
因此,可以通过如下的C语言代码实现面积计算功能:```include <stdio.h>include <math.h>int main(){double r, area;const double PI = 3.14159;printf("请输入圆的半径:");scanf("%lf", &r);area = PI * pow(r, 2);printf("圆的面积为:%.2lf", area);return 0;}```3. 代码解读代码中使用了math.h头文件里的pow函数,其作用是求一个数的任意次方。
例如,pow(r, 2)即求r的2次方,也就是r的平方。
而圆的面积公式中涉及π,这里使用了const关键字定义一个常量PI。
程序运行时,首先提示用户输入圆的半径,然后使用scanf函数读取用户的输入,并将半径存储到变量r中。
接着,在计算面积时,使用上文提到的公式并存储在变量area中。
最后,使用printf函数输出面积值。
这里使用"%.2lf"表示以双精度浮点型输出,保留两位小数。
4. 总结本文介绍了如何使用C语言计算圆的面积,并提供了实际的代码例子及其解释。
对于初学者来说,掌握这些基础的C语言知识是十分必要的。
希望读者在学习过程中能够理解相关概念和技术,并用心去体验和实践。
Ch452程序代码/************************************* ************************************* ***********//* FileName: ch452.h *//* Function: *//*---------------History--------------------------------------------------------------*//* Author | Date | Status | Description *//* wang | 2011/8/04 | create | *//* | | | *//************************************* ************************************* ***********/#ifndef _CH452_H#define _CH452_H//#ifndef _CH452A_H_//#define _CH452A_H_/* D efine command */#define CMD_SYSPARA 0x68/////definiton for system parameter command default:0#define DISP 0x01 //0:disable 1:enable#define KEYB 0x02 //0:disable 1:enable #define WDOG 0x04 //0:close 1:open#define DPLR 0x08 //0:low level 1:high level#define SSPD 0x10 //0:low speed 1:high speed#define INTM 0x20 //0:low level 1:low level pulse#define GPOE 0x40 //0:all DIG as driver 1:DIG6 DIG7 as GPIO#define CMD_DISPARA 0x6A/////definiton for display parameter command default:0#define MODE 0x80 //0:No decode 1:BCD decode//#define LIMIT 0x70 //bit6~bit4 range from 000 to 111#define INTENSITY 0x0F//bit3~bit0 range from 0000 to 1111#define CMD_DISPDAT 0x70//加载字数据前八位#define CMD_GETKEY 0x6E//键盘前八位#define CMD_ACKEN 0x6E//2线接口应答前八位/* F unction prototype */void ch452a_two_ack(void);void ch452a_Init (void);void ch452a_sendcmd(unsigned charcmd,unsigned char paradata);//写命令unsigned char ch452a_getkey(void);//读取按键unsigned char CH452_ReadKeyboard();#define KEY_UP 0x59#define KEY_DOWN 0x58#define KEY_LEFT 0x5B#define KEY_RIGHT 0x5A#define KEY_SET 0x48#define KEY_OK 0x40#endif主程序代码:/************************************* ************************************* ************ FileName: ch452.c ** Function: **---------------History--------------------------------------------------------------** Author | Date | Status | Description ** wang | 2011/7/28 | create | ** | | | ************************************** ************************************* ***********/#include "STC_NEW_8051.h"#include "IIC.h"#include "Ch452.h"sbit SCL=P1^0;sbit SDA=P1^1;//////////////////////////////////////////////// ////////////////////////////////////////// FileName:ch452a_two_ack() //// Function:Init_ack ////////////////////////////////////////////////// /////////////////////////////////////void ch452a_two_ack(){unsigned char i,wr_data;wr_data=CMD_ACKEN&0xfe;IIC_start();/* start condition */for(i=0;i<8;i++){if(wr_data&0x80)//判断高位数据SDA=1;elseSDA=0;wr_data<<=1;//让高位数据往左移delays(1);SCL=1;//数据的写要在时钟为高电平时delays(4);SCL=0;delays(5);}/* nine clock */SCL=0;delays(1);SDA=1;delays(4);SCL=1;delays(5);/* send data */for(i=0;i<8;i++){SCL = 0;delays(1);SDA = 0;delays(4);SCL = 1;delays(5);}IIC_stop();}//////////////////////////////////////////////// ////////////////////////////////////////// FileName:ch452a_Init() //// Function:Init ////////////////////////////////////////////////// /////////////////////////////////////void ch452a_Init(void){unsigned char cmddata,cmdadr;ch452a_two_ack();cmddata=CMD_SYSPARA;//系统参数地址cmdadr=DISP| KEYB & (~INTM) & (~DPLR);//系统参数数据IIC_writedata(cmddata,&cmdadr,1);cmddata=CMD_DISPARA;//显示参数地址cmdadr=MODE;IIC_writedata(cmddata,&cmdadr,1);}//////////////////////////////////////////////// ///////////////////// FunctionName: ch452a_sendcmd()// Description: send command to ch452a//////////////////////////////////////////////// ///////////////////void ch452a_sendcmd (unsigned char cmd,unsigned char paradata){unsigned char cmddata,cmdadr;cmddata = cmd;cmdadr = paradata;IIC_writedata(cmddata,&cmdadr,1);}//////////////////////////////////////////////// ///////////////////// FunctionName: ch452a_getkey()// Description: get key value from ch452a //////////////////////////////////////////////// ///////////////////unsigned char ch452a_getkey(){unsigned char cmddata,keycode;// unsigned char* pData=&revdata;cmddata = CMD_GETKEY | 0x01;keycode=IIC_readdata(cmddata); return keycode;}/*unsigned char CH452_ReadKeyboard() {unsigned char recvdata,cmddata;unsigned char ack;// uchar* pRecvData = &recvdata; cmddata = CMD_GETKEY | 0x01;IIC_start(); //启动IIC_send(cmddata); //发送从机地址ack=IIC_re_ack(ack);if(ack==0){recvdata = IIC_accept(cmddata);IIC_wr_ack(0); //主机发送应答给从机IIC_stop();}else{IIC_stop(); //ack条件不满足终止发送数据}return recvdata;}*//*void ch452_flash(unsigned char cmd,unsigned char paradata){unsigned char cmddata,cmdadr;cmddata =0x;cmdadr = paradata;IIC_writedata(cmddata,&cmdadr,1);}*/。