1.
2.
至于做了改变之后究竟是大于等于还是小于,请计算。
3.
答案:1.00 1 、0.67 2 、0.72 4
4.
答案:0.00 0 、0.67 2 、0.72 4
编程题:(代码仅供参考,并非最优解)
7-1 用格里高利公式求给定精度的PI值
本题要求编写程序,计算序列部分和 4∗(1−1/3+1/5−1/7+…) ,直到最后一项的绝对值小于给定精度eps。
输入格式:
输入在一行中给出一个正实数eps。
输出格式:
在一行中按照“Pi = pi”的格式输出部分和的值pi,精确到小数点后四位。题目保证输入数据和计算结果均不超过双精度范围
#include<stdio.h>
#include<math.h>
int main(){
double eps;
int flag = 1;
double denominator = 1;
double item = 1.0;
double pi = 0;
int i=1;
scanf("%lf",&eps);
while(fabs(item) >= eps){
item = flag * 1.0 / denominator;
i++;
pi = pi + item;
flag = -flag;
denominator = denominator + 2;
}
if(i==1){
pi = pi + item;
}
pi = pi * 4;
printf("Pi = %.4f",pi);
}
7-2 统计一批学生的平均成绩与不及格人数
本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩低于60分)的人数。题目保证输入与输出均在双精度范围内。
输入格式:
输入在一行中给出一系列非负实数,其间以空格分隔。当读到负实数时,表示输入结束,该数字不要处理。
输出格式:
按照以下格式输出:
Average = 成绩均值
Count = 不及格人数
其中平均值精确到小数点后两位,等号的左右各有一个空格。
#include<stdio.h>
#include<math.h>
int main(){
int score,count=0,i=0;
double avg,total=0;
scanf("%d",&score);
while(score>=0){
i++;
total+=score;
if(score<60){
count++;
}
scanf("%d",&score);
}
if(i==0){
avg=0.00;
}else{
avg=total/i;
}
printf("Average = %.2f\n",avg);
if(i>0){//题目案例特殊要求,无不及格时不显示count.
printf("Count = %d\n",count);
}
}