测量中角度单位为度分秒的加减运算的C语言实现

问题引入

在测量数据处理时,有很多角度数据需要计算处理,如控制测量测定的多个角度数据,在此之前有excel表格计算,但由于表格输入数据较复杂,此外网上很难找到度分秒角度的计算器。对此,笔者用C语言编写出关于测量数据处理时角度计算的相关程序。

代码思路

  1. 选择要计算加法还是减法;
  2. 获取两个数,将其转换为以秒为单位
  3. 相减,在用angle函数将其转换为度分秒角度

具体代码

#include <stdio.h>
#include <stdlib.h>
int sum(int i,int j,int k);
void angle(int k);

int main(){
	printf("***********************************************欢迎使用角度加减法计算器!***********************************************\n\n\n"); 
	int options;
	printf("请选择计算角度的是加法还是减法:\n(1).加法\n(2).减法\n");
	scanf("%d",&options);
	int degrees_1,minutes_1,seconds_1;
	int degrees_2,minutes_2,seconds_2;
	int rat;
	switch(options){
		case 1:
			printf("请输入第一个加数(依次输入度、分、秒,用空格隔开,最后回车)");
			scanf("%d %d %d",&degrees_1,&minutes_1,&seconds_1);
			printf("请输入第二个加数(依次输入度、分、秒,用空格隔开,最后回车)");
			scanf("%d %d %d",&degrees_2,&minutes_2,&seconds_2);
			rat = sum(degrees_1,minutes_1,seconds_1) + sum(degrees_2,minutes_2,seconds_2);
			printf("%d°%d′%d″+ %d°%d′%d″= ",degrees_1,minutes_1,seconds_1,degrees_2,minutes_2,seconds_2);
			angle(rat);
			break;
		case 2:
			printf("请输入减数(依次输入度、分、秒,用空格隔开,最后回车)");
			scanf("%d %d %d",&degrees_1,&minutes_1,&seconds_1);
			printf("请输入被减数(依次输入度、分、秒,用空格隔开,最后回车)");
			scanf("%d %d %d",&degrees_2,&minutes_2,&seconds_2);
			rat = sum(degrees_1,minutes_1,seconds_1) - sum(degrees_2,minutes_2,seconds_2);
			printf("%d°%d′%d″- %d°%d′%d″= ",degrees_1,minutes_1,seconds_1,degrees_2,minutes_2,seconds_2);
			angle(rat);
			break;
		 default:
            printf("输入错误\n程序退出");
            break;
	}
	
	return 0; 
}

int sum(int i,int j,int k){
	return k + j*60 + i*60*60;
}
//转换为角度的函数 
void angle(int k){
	printf("%d°%d′%d″",k/3600,abs(k%3600/60),abs(k%60));	
}

运行结果

两数相加

两数相减

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值