提高篇 第1-15节课后习题

来源:互联网 发布:ubuntu使用yum gcc 编辑:程序博客网 时间:2024/05/17 02:58

项目一:

计算1到n的k次方累加

代码:

#include<stdio.h>int power(int m,int n);//求m的n次方(m^n)int sum_of_power(int k,int n);//从1^k到n^k的累加和int main( ){    int k, n;    scanf("%d %d", &k, &n);    printf("f(%d, %d)=%d\n", k, n, sum_of_power(k,n));//m^k的累加和    return 0;}int power(int m,int n)//求m的n次方(m^n){    int s=1,i;    for(i=0;i<n;i++)    {        s*=m;    }return s;}int sum_of_power(int k,int m)//从1^k到n^k的累加和{    int s=0,i;    for(i=1;i<=m;i++)    {        s=s+power(i,k);    }    return s;//在这个函数中调用 power函数求幂}

项目二:歌手大赛打分函数版

①代码:

#include <stdio.h>void calScore(int n);int main(){    int n;    printf("请输入评委人数:");    scanf("%d",&n);    calScore(n);    return 0;}void calScore(int n){    int i;    double a;    double m=0,b=10,sum=0;    printf("请输入选手的成绩(0-10)\n");    for(i=1;i<=n;i++)    {        printf("第%d位评委给分:",i);        scanf("%lf",&a);        if(a>m)        m=a;        if(a<b)        b=a;        sum+=a;    }    printf("减去一个最高分:%lf,",m);    printf("减去一个最低分:%lf\n",b);    printf("当前选手的最后得分是:%lf",(sum-m-b)/(n-2));}
改进版:

#include <stdio.h>void calScore(int n);int main(){    int n;    char c;    printf("请输入评委人数:");    scanf("%d",&n);    do{    calScore(n);    printf("按N退出,其他键继续:");    fflush(stdin);    c=getchar();    }while(c!='n'&&c!='N');    return 0;}void calScore(int n){    int i=1,fb;    double a;    double m=-1,b=11,sum=0;    printf("请输入选手的成绩(0-10)\n");        do        {        printf("第%d位评委给分:",i);        fflush(stdin);        fb=scanf("%lf",&a);        if(fb==0)        {            printf("输入错误,请重新输入\n");            continue;        }        if(a>m)        m=a;        if(a<b)        b=a;        sum+=a;        i++;        }while(i<=n);    printf("减去一个最高分:%lf,",m);    printf("减去一个最低分:%lf\n",b);    printf("当前选手的最后得分是:%lf\n",(sum-m-b)/(n-2));}



0 0
原创粉丝点击