PTA-2017实验2.3 指定次数循环

`7-1 求N分之一序列前N项和(15 分)
本题要求编写程序,计算序列 1 + 1/2 + 1/3 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
输入样例:

6

输出样例:

sum = 2.450000

程序源码

#include <stdio.h>

int main(){
    int i,n;
    double sum;
    sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum+=1.0/i;
    }
    printf("sum = %.6f",sum);
    return 0;
}

7-2 求奇数分之一序列前N项和(15 分)
本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
输入样例:

23

输出样例:

sum = 2.549541

程序源码

#include <stdio.h>

int main(){
    int i,n,num;
    double sum;
    sum=0;
    num=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum+=1.0/num;
        num+=2;
    }
    printf("sum = %.6f",sum);
    return 0;
}

7-3 求简单交错序列前N项和(15 分)
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
输入样例:

10

输出样例:

sum = 0.819

程序源码

#include <stdio.h>

int main(){
    int i,n,num,flag;
    double sum;
    sum=0;
    num=1;
    flag=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum+=flag*1.0/num;
        num+=3;
        flag=-flag;
    }
    printf("sum = %.3f",sum);
    return 0;
}

7-4 输出华氏-摄氏温度转换表(15 分)
输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。

温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。

输入格式:
在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。
输出格式:
第一行输出:"fahr celsius"

接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。

若输入的范围不合法,则输出"Invalid."。

输入样例1:

32 35

输出样例1:

fahr celsius
32   0.0
34   1.1

输入样例2:

40 30

输出样例2:

Invalid.

程序源码

#include <stdio.h>

int main(){
    int lower,upper;
    scanf("%d %d",&lower,&upper);
    if(lower>upper){
        printf("Invalid."); 
    }else{
        printf("fahr celsius\n"); 
    for(int i=lower;i<=upper;i+=2){
        printf("%d%6.1lf\n",i,5.0*(i-32)/9);
    }
    }
    
    return 0;
}

7-5 求平方与倒数序列的部分和(15 分)
本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m​2​​+1/m+(m+1)​2
+1/(m+1)+⋯+n​ +1/n。

输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
输入样例:

5 10

输出样例:

sum = 355.845635

程序源码

#include <stdio.h>

int main(){
    int i,n,m;
    double sum;
    sum=0;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++){
        sum+=i*i+1.0/i;
    }
    printf("sum = %.6f",sum);
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 7-1 求奇数和(15 分)本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间...
    林之禾阅读 23,947评论 0 21
  • 3-1 求一元二次方程的根(20 分)本题目要求一元二次方程的根,结果保留2位小数。 输入格式:输入在一行中给出3...
    林之禾阅读 23,480评论 0 7
  • 生活大爆炸版石头剪刀布 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,...
    bbqub阅读 485评论 0 0
  • 第1章 第一个C程序第2章 C语言基础第3章 变量和数据类型第4章 顺序结构程序设计第5章 条件结构程序设计第6章...
    小狮子365阅读 10,732评论 3 71
  • 拒绝,越简单越好。我帮不上你,不行,不可以。解释半天,只会让自己感觉亏欠了别人,或者让对方觉得你亏欠了他,徒增出许...
    一瑾会发光阅读 226评论 0 2