问题引入
来源于测绘专业课本《地图学》讲的高斯克吕格投影。
相关计算公式
由于我国的经度范围大约为73°33'E至135°05'E,横跨了东经73°至135°之间,整体位于东半球,所以以下算得的经度单位都为东经。
代码实现
纯算罢了
#include <stdio.h>
int main(){
printf("***************************************欢迎使用高斯克吕格投影分带相关计算程序!***************************************\n\n\n");
printf("参考:我国的经度范围大约为73°33'E至135°05'E\n");
double longitude;
printf("请输入经度(保留两位小数,注意是十进制,重点看小数点后一位是否大于5):");
scanf("%lf",&longitude);
int selection;
printf("请选择是计算6°代号还是3°代号:\n(1).3度带\n(2).6度带\n");
scanf("%d",&selection);
int n;
switch(selection){
case 1:
n = (longitude + 1.5)/3;
printf("经度为%.2f°E的3度带代号为:%d,此投影带的中央经线经度为:%d°E",longitude,n,3*n);
break;
case 2:
n = (longitude + 6)/6;
printf("经度为%.2f°E的6度带代号为:%d,此投影带的中央经线经度为:%d°E",longitude,n,6*n-3);
break;
default:
printf("选择错误,程序退出");
}
return 0;
}
运行结果
三度带
六度带