文章目录
一、例子
【3.1】求转化为以摄氏法表示的温度(如17°C)
#include <stdio.h>
int main() {
float f, c; // 定义f和c为单精度浮点型变量
f = 64.; // 指定f的值
c = (5.0 / 9) * (f - 32); // 利用公式计算c的值
printf("f=%f\nc=%f\n", f, c); // 输出c的值
return 0;
}
输出:
f=64.000000
c=17.777778
【3.2】银行不同年利率下的投资回报计算
#include <stdio.h> // 包含标准输入输出库,用于打印结果
int main() {
float p0=1000, r1=0.0036, r2=0.0225, r3=0.0198, p1, p2, p3; // 定义初始本金p0为1000,以及三个不同的年利率r1、r2、r3
// 同时定义了三个变量p1、p2、p3来存储计算后的金额
p1 = p0 * (1 + r1); // 计算一年后按照年利率r1的金额,使用公式:p1 = p0 * (1 + r1)
p2 = p0 * (1 + r2); // 计算一年后按照年利率r2的金额,使用公式:p2 = p0 * (1 + r2)
// 注意这里的计算假设利息不复利,即不将利息加到本金中再次产生利息
p3 = p0 * (1 + r3/2) * (1 + r3/2); // 计算半年后按照半年利率r3/2的金额,并且因为是半年复利一次,所以计算两次
// 使用公式:p3 = p0 * (1 + r3/2) * (1 + r3/2),这里假设每半年计算一次利息,并且将利息加到本金中
printf("p1=%f\np2=%f\np3=%f\n", p1, p2, p3); // 打印出按照不同利率计算后的金额
return 0; // 程序正常结束
}
输出:
p1=1003.600000
p2=1022.500000
p3=1019.800801
【3.3】给定一个大写之母,要求输出小写字母
#include <stdio.h>
int main() {
char c1, c2;
c1 = 'A'; // 将字符'A'的ASCII代码放到c1变量中
c2 = c1 + 32; // 得到字符'a'的ASCII代码,放在c2变量中
printf("%c\n", c2); // 输出c2的值,是一个字符
printf("%d\n", c2); // 输出c2的值,是字符'a'的ASCII代码
return 0;
}
输出:
a
97
【3.4】给出三角形的三边长,求出三角形面积
要求出三角形的面积,可以使用海伦公式(Heron’s formula)。海伦公式是利用三角形的三边长来计算面积的公式。首先,需要计算半周长(s),然后使用三边长和半周长来计算面积。
其中,a、b、c 是三角形的三边长,s 是半周长,Area 是三角形的面积。
#include <stdio.h>
#include <math.h> // 引入数学库,因为需要使用 sqrt 函数
int main() {
float a, b, c, s, area;
// 输入三角形的三边长
printf("请输入三角形的三边长:\n");
scanf("%f %f %f", &a, &b, &c);
// 计算半周长
s = (a + b + c) / 2;
// 检查是否能构成三角形
if (a + b > c && a + c > b && b + c > a) {
// 使用海伦公式计算面积
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("三角形的面积是:%f\n", area);
} else {
printf("输入的边长不能构成三角形。\n");
}
return 0;
}
输入: a=3.67 b=5.43 c=6.21
输出:area=9.90
【3.5】求ax^2+bx+c=0的根
#include <stdio.h>
#include <math.h> // 引入数学库,用于计算平方根
int main() {
double a, b, c, d, x1, x2;
// 输入三个系数
printf("请输入二次方程的系数a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
// 计算判别式
d = b * b - 4 * a * c;
// 根据判别式的值分别处理
if (d > 0) {
// 两个不相等的实根
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("方程有两个不相等的实根: x1 = %.2f, x2 = %.2f\n", x1, x2);
} else if (d == 0) {
// 两个相等的实根
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实根: x1 = x2 = %.2f\n", x1);
} else {
// 没有实根,只有复根
printf("方程没有实根,只有复根\n");
}
return 0;
}
输入:a=1 b=3 c=2
输出:x1=-1 x2=-2
【3.6】用%f输出实数,只能得到6位小数
#include <stdio.h> // 包含标准输入输出库,用于打印结果
int main() {
double a = 1.0; // 定义一个双精度浮点型变量a,并初始化为1.0
// 注意这里使用double类型是为了确保精度,因为结果是一个小数
printf("%f\n", a / 3); // 使用printf函数打印变量a除以3的结果
// %f是格式化字符串,用于打印浮点数
// a / 3计算a除以3的结果,这里a是1.0,所以结果是0.333333...
return 0; // 程序正常结束,返回0
}
输出:
0.333333
【3.7】float型数据的有效位数
#include <stdio.h> // 包含标准输入输出库,这个库提供了输入输出函数,如printf()
int main() {
float a; // 声明一个名为a的变量,类型为float,即单精度浮点数
// float类型通常用于存储小数
a = 10000 / 3.0; // 将10000除以3.0的结果赋值给变量a
// 这里10000是整数,3.0是浮点数,所以整个表达式会进行浮点数除法
printf("%f\n", a); // 使用printf()函数打印变量a的值
// %f是一个格式说明符,告诉printf()函数要打印一个浮点数
// \n是换行符,表示在打印完a的值之后换到新的一行
return 0; // main函数返回0,表示程序正常结束
}
输出:
3333.333333
【3.8】先后输出BOY三个字符
#include <stdio.h>
int main ( )
{
char a,b,c; // 定义3个字符变量
a='B';b='O';c='Y'; // 给3个字符变量赋值
putchar(a); // 向显示器输出字符B
putchar(b); // 向显示器输出字符O
putchar(c); // 向显示器输出字符Y
putchar ('\n'); // 向显示器输出一个换行符
return 0;
}
【3.9】从键盘输入BOY3个字符,输出到屏幕
#include <stdio.h>
int main ( )
{ char a,b,c; // 定义字符变量a,b,c
a=getchar(); // 从键盘输入一个字符,送给字符变量a
b=getchar(); // 从键盘输入一个字符,送给字符变量b
c=getchar(); // 从键盘输入一个字符,送给字符变量c
putchar(a); // 将变量a的值输出
putchar(b); // 将变量a的值输出
putchar(c); // 将变量a的值输出
putchar('\n'); // 换行
return 0;
}
【3.10】从键盘输入一个大写字母,并且输出小写字母
#include <stdio.h>
int main ( )
{
char c1,c2;
c1=getchar(); // 从键盘读入一个字符,赋给字符变量c1
c2=c1+32; // 得到字符'a'的ASCII代码,放在字符变量c2中
putchar(c2); // 输出c2的值,是一个字符
putchar('\n');
return 0;
}
输入:
B
输出:
b