c primer puls 第232页转换成中文理解

//#define _CRT_SECURE_NO_DEPRECATE   //备用
#include <stdio.h>
long	get_long(void);//验证输入是一个整数
int	bad_limits(long begin, long end, long low, long high);//开始,结束,低的,高的,验证范围的上下限是否有效
double	sum_squares(long a,long b);//计算a-b之间的平方数
int main(void)
{
	const long MIN=-10000000L;  //范围下限
	const long MAX=+10000000L;  //范围上限
	long start;//用户指定的范围最小值
	long stop;//用户指定范围的最大值
	double answer;// 答案
	printf("这个程序计算一个范围内的整数平方和\n"
		   "下限不应小于-1000000,上限不应大于+10000000\n"
		   "输入限制(输入0以退出两个限制):\n"
		   "下限:");
	start=get_long();//开始
	printf("上限:");
	stop =get_long();//结束`
	while(start!=0||stop!=0)
	{
		if(bad_limits(start,stop,MIN,MAX))
			printf("请重试\n");
		else
		{
			answer=sum_squares(start,stop);
			printf("整数的平方和");
			printf("从%ld到%ld是%g\n",start,stop,answer);//%g把输入解释成浮点数
		}
		printf("输入限制(输入0以退出两个限制):\n");
		printf("下限:\n");
		start=get_long();//开始
		printf("上限:");
		stop =get_long();//结束
	}
	printf("结束了\n");
	return 0;
 }
long get_long(void)
{
	long input;
	char ch;
	while(scanf("%ld",&input)!=1)
	{
		while((ch=getchar())!='\n')
			putchar(ch);
		printf("不是整数.\n请输入一个整数");
		printf("整数值,如25,-178,或3:");
	}
	return input;
}
double sum_squares(long a,long b)
{
	double total=0;
	long i;
	for(i=a;i<=b;i++)
		total+=(double)i*(double)i;
	return total;
}
int bad_limits(long begin,long end,long low,long high)
{
	int not_good=0;
	if(begin>end)
	{
		printf("%ld不小于%ld.\n",begin,end);
		not_good=1;
	}
	if(begin<low||end<low)
	{
		printf("值必须大于等于最小值%ld.\n",low);
		not_good=1;
	}
	if(begin>high||end>high)
	{
		printf("值必须小于等于最大值%ld.\n",high);
		not_good=1;
	}
	return not_good;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值