实验二 算术运算与标准函数使用

实验二 算术运算与标准函数使用

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;
}

在这里插入图片描述

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空阿瞒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值