c语言 正整数如何表示
6个回答
展开全部
在C语言中可以用unsigned int或unsigned short或unsigned char或unsigned long关键字来定义一个正整数变量。
unsigned int表示无符号整型。能表示数的范围为0~(2^16-1)(unsigned int占2字节,16位机系统,如Turbo C)或0~(2^32-1)(unsigned int占4字节,32位机系统,如Visual C++)。
unsigned short表示无符号短整型。能表示数的范围为0~(2^16-1)。
unsigned char表示无符号字符型。能表示数的范围为0~(2^8-1)。
unsigned long表示无符号字符型。能表示数的范围为0~(2^32-1)。
举例如下:
unsigned int a = 123; // 定义一个无符号整型数a,并初始化为123
unsigned short b = 123; // 定义一个无符号短整型数b,并初始化为123
unsigned char c = 123; // 定义一个无符号字符型数c,并初始化为123
unsigned long d = 123; // 定义一个无符号长整型数d,并初始化为123
注:具体选哪个关键字表示,就需要根据所需要表示整数的范围来进行选择。
展开全部
假如等式结果是x
然后定义int y;
y取x的整数部分,y=x;
最后判断 if(( x-(float)y)== 0.000) // 减去整数部分,判断小数部分是否为0
如果等式成立,就是你要的结果
然后定义int y;
y取x的整数部分,y=x;
最后判断 if(( x-(float)y)== 0.000) // 减去整数部分,判断小数部分是否为0
如果等式成立,就是你要的结果
追问
int main()
{
float i=0,p=1,q=2,s=1/2,t;
while ( )
{
i++;
t=p;
p=q;
q=t+q;
s=s+p/q;
}
printf("%d",s);
}
条件放在哪儿?
追答
int main()
{
float i=0,p=1,q=2,s=1/2,t;
long int k;
while (1)
{
i++;
t=p;
p=q;
q=t+q;
s=s+p/q;
k = s;
if((s-(float)k)==0) // 这里加条件
{
break;
}
}
printf("%d",s);
getch();
}
先声明下,我不知道你上面的式子写的有没有错,不过条件加在上面那里就可以了
int main()
{
float t=1,q=2,s=t/q,x,y=q;
long int k;
while (1)
{
x=y; // 这个式子的规律是前一个式子的分子分母和是下一个的分母,而前一个的分母则是下一个式子的分子
y=x+y;
s=s+x/y;
if((s-(float)k)==(float)0)
{
printf("%d",s);
getch();
return;
}
}
printf("%d",s);
getch();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是求n个数的最小公倍数的事啊
设通项an/bn 第一项 a1=1,b1=2
第二项a1=b1,b2=a1+b1
三项a3=b2,b3=a2+b2
任务就是求解出所有分母的最小公倍数GBS
再把把有分数转化成同分母的数,用分子之和SUM去除GBS,如果整除就是正整数
设通项an/bn 第一项 a1=1,b1=2
第二项a1=b1,b2=a1+b1
三项a3=b2,b3=a2+b2
任务就是求解出所有分母的最小公倍数GBS
再把把有分数转化成同分母的数,用分子之和SUM去除GBS,如果整除就是正整数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言经典例子之求解正整数位数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先定义一个float 接受上面的值
然后应用位运算 看看这个float的值的二进制码某些位的值是否为0
然后应用位运算 看看这个float的值的二进制码某些位的值是否为0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询