目录
实验二 算术运算与标准函数使用
2.1基本实验任务
任务1:阅读程序
1.基本输出:十进制整型,占位符%d
#include <stdio.h>
int main()
{
int num1 = 3, num2 = 4;
printf("%d,%d\n", num1, num2);
printf("num1=%d,num2=%d\n", num1, num2);
return 0;
}
2.【ASCII编码表】分别以不同的占位符输出字符
ASCII表相当于翻译表,是现实世界与计算机世界的桥梁!
计算机的世界里归根到底只有0和1,也就是电信号的高低电平,神奇!
‘A’=65,‘a’=65+32=97
#include <stdio.h>
int main()
{
char c1;
c1 = 'A';//ASCII编码表
printf("%c,%d\n", c1, c1);//以字符及十进制整数打印
return 0;
}
3.求圆的面积、周长,限定小数及宽度
和求梯形面积是相通的
#include <stdio.h>
int main()
{
double radius;
double area, length;
radius = 3;
area = 3.1415926 * radius * radius;
length = 2 * 3.1415926 * radius;
printf("area=%f,length=%f", area, length);
return 0;
}
任务2:完成程序
1.除法结合取模,求个十百【划重点啦】
当执行 2 % 10,操作的步骤如下:
2 除以 10 等于 0.2,但由于我们在进行整数运算,小数部分被忽略。
因此,2 除以 10 的整数结果是 0。
最后,我们考虑余数。在这种情况下,2 除以 10 的余数是 2,因为 2 小于 10 且不能被进一步除。
所以,2 % 10 的结果是 2。简单来说,当被除数小于除数时,取模运算的结果就是被除数本身。
#include <stdio.h>
int main()
{
int num = 236, ge, shi, bai;
ge = num % 10;
shi = ((num / 10) % 10);
bai = ((num / 100) % 10);
printf("百位上数字是%d,十位上数字是%d,个位上数字是%d",bai, shi, ge);
return 0;
}
2.求五个数的平均值
#include <stdio.h>
int main()
{
printf("平均值是:%f\n", ((56 + 32.3 + 78.2 + 22.1 + 98.5) / 5));
return 0;
}
任务3:编写程序,实现题目要求
1.求两点间的距离
1.1.入门解法
#include <stdio.h>
#include <math.h>
int main()
{
int x1 = 0, y1 = 0;
int x2 = 0, y2 = 0;
double s = 0;
//如何使用结构体优化,以达到重复使用的效果?
printf("请输入第一个坐标:");
scanf("%d %d", &x1, &y1);
printf("请输入第二个坐标:");
scanf("%d %d", &x2, &y2);
s = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
//写一个计算两点间距离的函数并调用
printf("两点间的距离为 %.2lf", s);
return 0;
}
1.2.结构体降低重复率,调函【硬核优化,不要重复造轮子】
#include <stdio.h>
#include <math.h>
struct Point
{
int x;
int y;
};
double calculateDistance(struct Point p1, struct Point p2)
//声明函数
//如何收参???数据类型不可变,变量随意形参为类型加变量名
{
return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
}
int main()
{
struct Point point1, point2;//定义结构体变量
//从现在开始,慢慢适应英文变量名
double Distance = 0;
printf("请输入第一个坐标:");
scanf("%d %d", &point1.x, &point1.y);
printf("请输入第二个坐标:");
scanf("%d %d", &point2.x, &point2.y);
//实参直接传递变量
//在调用函数时,不需要再次声明函数,只需直接调用即可
//调用函数后应该将返回值赋值给变量
//不需要在函数调用处再次声明函数的返回类型,只需直接调用函数即可
Distance = calculateDistance(point1, point2);
printf("两点间的距离为 %.2lf", Distance);
return 0;
}
2.大小写转换【XXT】
根本是ASCII表
#include <stdio.h>
int main()
{
char c1 = 'm';
printf("大写字母是:%c\n", c1 - 32);
return 0;
}
3.数字字符与相应数值的转换【XXT】【划重点啦】
扫雷重现:计算棋盘上雷的个数
#include <stdio.h>
int main()
{
char c1 = '9';
int x;
x = c1 - '0';
printf("数字字符%c对应的数值是:%d", c1, x);
return 0;
}
4.圆环面积【XXT】
#include <stdio.h>
#define PI 3.1415926
int main()
{
int r1 = 25, r2 = 15;
double s1, s2;
s1 = PI * r1 * r1;
s2 = PI * r2 * r2;
printf("所求圆环的面积是:%lf\n", s1 - s2);
return 0;
}