实验三 : 优秀代码

2016-10-13  本文已影响0人  jzh123s

A : 计算圆内接正n边形的面积

题目描述:
输入圆半径R、正整数n,计算并输出圆内接正n边形的面积。
面积公式:nR*Rsin(2π/n)/2。
C语言中已定义正弦函数sin(x),其中x是弧度。使用sin(x)需包含头文件math.h。
π的取值为3.1415926。

优秀代码

//这是一个计算圆内接正n边形面积
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
int main()
{
    int n;
    double r,Area;
    //printf("请输入半径和正多边形的边数");
    scanf("%lf,%d",&r,&n);
    Area=n*r*r*sin(2*PI/n)/2;
    printf("Area=%.2lf\n",Area);
    return 0;
}

点评 : 很标准的一段代码。

B : 一元二次方程的两个实根求解

题目描述
输入一元二次方程ax^2+bx+c=0的系数a、b、c。
假设输入始终满足b^2-4ac>0且a不等于0,计算并输出该方程的两个实根。
C语言中计算非负实数的平方根函数: double sqrt(double);
头文件:math.h。

优秀代码

#include<stdio.h>
#include<math.h>
int main ()
{
    int a , b , c ;
    double delta , x1 , x2 ;
 
    //printf ( "请输入一元二次方程的系数a,b,c" );
    scanf ( "%d%d%d", &a , &b , &c );
    delta=b*b-4*a*c;
    x1=(-b+sqrt(delta))/(2*a);
    x2=(-b-sqrt(delta))/(2*a);
 
    //printf ( "该方程的两个实根分别是" );
    printf ( "x1=%.2lf x2=%.2lf \n", x1 , x2 );
 
    return 0;
}

点评 : 声明了delta变量方便重用,避免了冗余。格式和缩进把握的也不错。

C : 大写字母加密

题目描述
有一种古典加密方法就是按照字母表顺序,把每个字母循环右移k位,从而转换为加密的另一个字母。 
例如偏移2位,即A对应C,B对应D,……X对应Z,Y对应A,Z对应B。 
当前设定加密规则是:循环右移4位。
注:要求用表达式实现加密。

优秀代码

#include<stdio.h>
 
 int main()
 {  char ch, ch1;
    ch=getchar();
    ch1='A'+(ch-'A'+4) % 26;
    printf("%c\n", ch1);
    return 0;
    }

点评 : 一行代码实现了整个加密流程,缩进还能再改进下

D : 求三个数中的最大数

题目描述
有三个整数a b c,由键盘输入,输出其中的最大的数。

优秀代码

#include <stdio.h>
int main()
{
    int a,b,c,max;
    scanf("%d%d%d",&a,&b,&c);
    max=a>b?a:b;
    max=c>max?c:max;
    printf("%d",max);
    return 0;
}

点评 : 利用了三段式替代了大量的if语句

E : 判断字母

题目描述
输入一个字符,判定该字符是否是字母。
(提示:可使用ctype.h中的函数)

优秀代码

//这是判断字母的代码
#include<stdio.h>
#include<ctype.h>
int main()
{
    char c;
    c = getchar();
    //读取一个字符
    if(c>='a'&&c<='z' || c>='A'&&c<='Z')
        printf("ALPHA\n");
    else
        printf("NO\n");
    return 0;
}

点评 : 手动判断了c的范围,对&&和||的优先级也把控的很到位
PS:早期不建议使用内置函数偷懒,能自己实现的尽量自己实现。

上一篇下一篇

猜你喜欢

热点阅读