c语言十进制的表示范围?(区间测速规范)

最后更新 : 2021.11.26  

在c语言中用到数值范围一般有如下两种情况:

c语言十进制的表示范围?(区间测速规范)插图

1

c语言十进制的表示范围?(区间测速规范)插图1

逻辑判断中确定某数在某个范围内。

比如判断数c在[a,b]区间内可以写作

(a<=c)

&&

(c

<=

b)

2

使计算结果处于某个范围内。

比如计算时间时,当前时间为n点,经过m小时后是几点,由于时间仅取值在0点到23点,所以对数值范围需要做约束。对于此可以用模除(%)来限定。

(n+m)%24

其它关于数值范围限定的问题,都可以从这两种情况中延伸获得。

比如下面两个例题就是两种情况的应用。

例一,输入起始天的星期数(1-7),及天数n,计算经过n天后是星期几。

分析,这个是第二种的典型应用,不过数据规模为1到7,与之前说的0起始情况略有不同,可以通过转换达到目的,代码如下:

#include

int

main()

{

int

s,n;

scanf(\”%d%d\”,&s,&n);

s

–;//将s-1;这样用0-6代表星期一到日

s

+=n;

s%=7;//通过模除限定结果

s++;//转换回1-7的表示方法

printf(\”%d\\n\”,

s);//输出结果

return

0;

}

例二,依照下面的公式计算,直到结果小于0或者大于100为止,f(0)由外部输入。

如果f(n)为奇数,f(n+1)=2f(n)

否则f(n+1)

=

f(n)/2-10

输出计算结果。

题目很清晰,直接输入并循环计算,直到符合退出条件为止。

对于条件的判断就是第一种情况的简单应用了。

代码如下:

#include

int

main()

{

int

r;

scanf(\”%d\”,&r);

while(r

>=

0

&&

r

<=

100)//对结果进行范围判断

{

if(r

&

1)

r

*=

2;

//奇数的情况。

else

r=r/2-10;//偶数的情况。

}

printf(\”%d\\n\”,

r);

return

0;

}

编写用黄金分割法求区间的程序

#include&lt;iostream.h&gt;

#include&lt;math.h&gt;

/*黄金分割法求最小值的C++程序,部分变量及函数书写并不规范*/

//δ为题给精度

int n = (lnδ/ln0.618 + 1) + 1;

int i;

float f(float ai, float bi)

{

a(i + 1) = ai + 0.618(bi – ai);

return ai + 1;

}

float g(float ai, float bi)

{

b(i + 1) = ai + 0.382(bi – ai);

return b(i + 1);

}

float F(float ai, float bi)

{

//题给的f(x)函数式;

return ;

}

float A(float ai, float bi)

{

int i = 1;

float result;

L: do

{

a(i + 1) = f(float ai, float bi);

b(i + 1) = g(float ai, float bi);

float F1 = F(float ai, float bi);

float F2 = F(float a(i + 1), float b(i + 1));

ai = ai, bi = b(i + 1);

i ++;

}while(i &lt;= n &amp;&amp; F1 &gt;= F2)

if(i &lt; n)

{

B(float ai, float bi);

}

else

result = F2;

return result;

}

float B(float ai, float bi)

{

do

{

a(i + 1) = f(float ai, float bi);

b(i + 1) = g(float ai, float bi);

float F1 = F(float ai, float bi);

float F2 = F(float a(i + 1), float b(i + 1));

ai = a(i + 1), bi = bi;

i ++;

}while(i &lt;= n &amp;&amp; F1 &lt;= F2)

if(i &lt; n)

{

goto L;

}

else

result = F1;

return result;

}

void main()

{

int i = 1;

float A(float ai, float bi);

cout&lt;&lt;\”最小值为:\”&lt;&lt;result&lt;&lt;endl;

相关阅读

- END -

4
0