07.12C
来源:互联网 发布:mac的word怎么保存 编辑:程序博客网 时间:2024/05/16 16:56
函数应用
【项目1-k次方之和】
设计程序,计算:
解法:
#include <stdio.h>#include <stdlib.h>int mypow(int,int);int main(){ printf("please enter two number n and k:"); int f=0; int n,k; int i; scanf("%d%d",&n,&k); for(i=1;i<=n;++i) { f += mypow(i,k); } printf("the result is:%d",f); return 0;}int mypow(int a,int k){ int i=1; int m=1; for(i=1;i<=k;++i) { m=m*a; } return(m);}【项目2-歌手大奖赛计分系列】
(1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。
要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数调用时,需要将输入的评委人数n作为实参。
(2)进一步完善(1)的程序。输入时,难免有录入错误发生,如果输入的成绩不在0-10之间,要求用户立即重新输入(在函数calScore中修改);一次运行程序只计算一位选手成绩太麻烦,要求输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N:”如果输入的不是N或n,可以为下一位选手计算成绩(在main函数中进行控制即可)。
解法:
#include <stdio.h>#include <stdlib.h>void calScore(int n);int main(){ char ch; printf("please enter the amount of the judges:"); int iM_judge; scanf("%d",&iM_judge); do { calScore(iM_judge); printf("if you want exit please press N or do press any other key to continue:\n"); fflush(stdin); //读入字符前,常要清空“输入缓存区” scanf("%c",&ch); printf("\n"); }while(ch!='N'&&ch!='n'); return 0;}void calScore(int m){ int i=1; double dScore; double dMax=0,dMin=10; double dSum=0,dAverage=0; printf("please enter the singer's score\n"); printf("\n"); do { printf("please enter %dth singer's score(0-10):",i); scanf("%lf",&dScore); if(dScore>10||dScore<=0) { continue; } dSum += dScore; if(dMax<=dScore) dMax=dScore; if(dMin>=dScore) dMin=dScore; i++; }while(i<=m); dAverage=(dSum-dMax-dMin)/(m-2); printf("remove the highest score:%0.2lf ,",dMax); printf("remove the lowest score:%0.2lf \n",dMin); printf("the final score of the current singer:%0.2lf \n",dAverage); printf("*********************success!*********************\n"); }【项目3-编制三角函数表】
要求在main()函数中调用show_sin_table(min_angle, max_angle),显示角度值为min_angle到max_angle之间的所有角度(间隔为1度)的正弦值。要求不能用数学库函数,可以将项目“太乐了”中的mysin函数拷贝到这个程序中,用于计算sin值。例如show_sin_table(0, 90)可以显示出所有0到90度的正弦值。可以考虑以速查表格的形式(例,单位转换对照表)给出结果。
解法:
#include <stdio.h>#include <stdlib.h>#define pi 3.1415926double mysin(double);void show_sin_table(int,int);double myabs(double);int factorial(int);int main(){ printf("please enter the range of the angel(min-max):"); int iMax_a,iMin_a; scanf("%d%d",&iMin_a,&iMax_a); show_sin_table(iMin_a,iMax_a); return 0;}void show_sin_table(min_angle, max_angle){ int i=1; double dRadian; double dValue; for (i=min_angle;i<=max_angle;++i) { dValue=0; dRadian=(pi/180)*i; dValue=mysin(dRadian); printf("sin(%d)=%0.2lf\t",i,dValue); if(i%4==0) printf("\n"); } }double mysin(double dRad){ double dError; double dSum; double dPow; int n; int sign=-1; int i=1; double x=dRad; dSum=x; dPow=x; do { n=2*i+1; dError=(sign*(dPow*x*x))/factorial(n); dSum += dError; sign=-sign; ++i; }while(myabs(dError)>0.00001); return(dSum);}double myabs(double x){ if(x<0) x=(-x); else x=x; return(x);}int factorial(int num){ int iFac_m=1; int i; for(i=1;i<=num;++i) { iFac_m *= i; } return(iFac_m);}
【项目4 - 让吃货失望的菜单】
计算机中的应用程序,常常用“菜单”的形式,提供给用户便捷的操作。当然, 里面没有菜。
下面的程序段给出了一些提示,请在此基础上拓展,使程序的运行如图所示(不限于此,可以拓展)
#include <stdio.h>#include <stdlib.h>int main(){ int n; printf("***************************\n"); printf("* 1 having dinner *\n"); printf("* 2 sleeping *\n"); printf("* 3 hit pees *\n"); printf("* 4 complain to pee's mom *\n"); printf("* 0 exit *\n"); printf("please make your choice:"); scanf("%d",&n); switch (n) { case 0:break; case 1: printf("what can i get to eat");break; case 2: printf("i am so sleepy");break; case 3: printf("the pain come from the bottom of my heart");break; case 4: printf("mom hits me too");break; } return 0;}
0 0
- 07.12C
- JZOJ2017.07.12 C组
- c
- c
- c
- c
- C
- c
- c
- c
- C+
- c
- C
- c
- c
- c
- C
- C
- 栈溢出攻击
- 大数加法
- ListView的item点击事件及item中子view的点击事件冲突处理方法和思路
- 基于python的selenium实现警告框的处理
- php的四种基本算法
- 07.12C
- /etc/passwd 和 /etc/shadow 文件内容及其解释
- IOS中复制对象的用法及深拷贝和浅拷贝详解
- 2016年工作中遇到的问题41-50:Dubbo注册中心奇葩问题,wifi热点坑了
- 事务的隔离等级 (ANSI标准)
- HDFS理论及基本命令
- java之下载word文档2之遍历模板和文件名中文为空和乱码
- HBuilder webApp开发(十一)二维码生成
- 以一个用户的视角来谈谈VR产品