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:早期不建議使用內置函數偷懶,能自己實現的盡量自己實現。