已知半径求周长和面积

思路

定义相关函数,求解周长和面积,在主函数里面调用。

代码

#include <stdio.h>
#define pi 3.14

double zhouchang(int r){
    return 2*pi*r;
}

double mianji(int r){
    return pi*r*r;
}

int main(){
    int r;
    scanf("%d",&r);
    printf("周长是%.2f\n",zhouchang(r));
    printf("面积是%.2f\n",mianji(r));
    return 0;
}

运行结果

反思

1.在运行过程中,我首先是宏变量的定义出现了错误,最开始我是这样定义的#define  pi=3.14   显然这样定义是错误的,正确的定义方式是#define pi 3.14

2.在编辑周长函数或者是面积函数的时候,我定义他们的返回类型是int型,然而由于我对pi的定义存在小数位,这当然是不合规矩的,后将其改成double类型。

3.同样的精度问题出现在我的输出上面,最开始我是使用整数类型的输出格式%d,后来意识到精度问题,将%d改成了%ld类型,当时就下意思的以为double对应的输出格式是%ld,但其实不是的,%ld是long int 的输出类型,而double类型对应的是输出类型使用的是%lf或者%f。我最后使用的是%f,并保留了两位小数,即%.2f。

格式说明符示例输入输出结果解释
%f3.143.140000默认右对齐,无宽度限制
%5.2f3.143.14右对齐,总宽度5,保留2位
%-5.2f3.143.14左对齐,总宽度5,保留2位
%-2f3.143.140000左对齐,宽度不足直接输出;输出的内容至少占 2个字符宽度;如果实际内容长度大于2,按实际宽度输出(不会截断数据)。
  1. %:格式说明符的起始符号。

  2. -左对齐标志(默认是右对齐)。

  3. 2最小字段宽度(输出的内容至少占2个字符宽度,不足时补空格)。

  4. f:表示输出浮点数(floatdouble类型)。

C语言中,printf的%f既可以用于float,也可以用于double。%lf在scanf中用于double,但是在printf中%lf与%f等价。

4.还有一处错误是在编写主函数时,我将主函数main写成了mian,是一个编程错误。

5.最后一处错误就是在输出周长和面积的时候,第二次犯懒了,直接将第一次输出复制粘贴了,函数调用修改了,但是前面的文字说明忘记进行修改了。

6.总的来说,整个编程题不难,但是其中有很多问题确实被暴露出来了,写下这么多的总结,也希望自己在日后能少犯些类似的错误,希望看文章的你们也是如此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值