目录

​题目​

​代码实现 ​

​代码解析​


题目

要求输出1/1+1/2+1/3+....1/n的和

代码实现 

#include "stdio.h"
int main(void){
float value,sum=0.0;
unsigned n=0;

scanf("%f",&value);
do
{
sum+=(float)1.0/++n;
}
while(n<value);
printf("%u\n",n);
return 0;
}

关于1/1+1/2+1/3+....1/n的和计算,包含unsigned概念_无符号整数

代码解析

unsigned int可以缩写unsigned,当只有unsigned的时候,默认为unsigned int类型。

unsigned是C语言的关键字,表示无符号数。unsigned可以与各种整数类型连用。

unsigned int表示无符号整数类型

原本int类型占4个字节,32位,其中1位表示正负号,这样用来表示数值的范围就变小了。

不需要正负号时候,用unsigned可以让32位都表示数值范围。

首先C语言当中没有分数这个概念,1/2会直接等于0,当如果是1.0/2会等于0.5。所以我们在表示分数的时候需要(float)1.0/++n。

题目的分母从1开始不断递增到n,分子始终是1不变。

输入一个n,然后借助循环体,将1.0/++n不断叠加到sum变量中,当n不小于value的时候(说明数式已经加到1/1+....+1/n),停止循环,进行输出。