请输入字母W);
scanFf'^'fBb);
>
charletterCchara)
<
priritFC,^c\n'\a-32:
;
elseif(a>='fi'&&a<='£B)printFC"^c\n",a);
else
prlntFCk请输入字母:
W):
"C:
\c
请输人字母:
A
ft
Pressanv畑ytocentinue
9\
i耳输入于母二
a
A
Presseuiykejitocontinue
"C:
请输入予母;
请输入字母-
PressanyNey1tocontinue
【题目3-2】从键盘输入若干个同学计算机课程期末考试成绩(学生人数可由用户输入),求该课程的期末成绩的平均分并输出。
函数功能要求:
实现若干(例如5名)同学的的期末成绩输入,并统计出平均分。
算法分析:
1、输入:
通过键盘接收同学个数;
2、调用求平均分函数
3、输出平均成绩
4、程序结束。
floatavefintn}
<
scarf(*%r,&gra血);〃接受檬盘输入求和5=$+grade;
>
average=s/n;//Sty均flft
>
【实验3-2】代码及运行结果:
|ljiuu^iiiicinucrt_2j|vavc
El
ttinclt>.h>
dnubl*4u^(inrn);mint>
lett.c
inrx;
^inrtr请输入学生个数:
xn-);
scaaf("%r'.U);
dive(x);
doubleaup(irtn)
irati;
doubles-Ofqrade^veraqe;for(i-1
printF<"q*输人学生成^:
\H*);
5caitFfl%lfffl,3tkgrade);
5-s+grade;
au>erage=s/n;
Printf(■■宇生的期齐成绩半均分为=\nV\n*l,auerage);
【题目3-3】请用函数编写程序实现:
计算3到100之间所有素数的平方根之和,
并输出。
s=148.874270。
算法分析:
1、编写函素数判别函数,确定返回标记,如果是素数返回1,否则返回0
2、编写主函数,用一重循环遍历100以内所有数据
2.1、通过素数判别函数对循环的数据进行是否为素数的判别
2.2、返回判别为真的整数,并输出
3、程序结束。
【实验3-3】代码及运行结果:
#include
#include
intPrime(intx)
{
inti;
if(x<=1)
return0;
for(i=2;i<=x-1;i++)
{
if(x%i==0)
{
return0;
}
}
return1;
}
intmain()
{
doublei,sum;
i=3;
sum=0;
while(i<=100)
{
if(Prime(i))
{
sum=sum+sqrt(i);
}
else
{
sum=sum+0;
}
i++;
}
printf("sum=%f\n",sum);return0;
}。
return1;
intmain()
<
doublei.sun;
1=3;
sum=0;
while(i<=1US)
<
if(Prine(l))
{
sum=sun+s(|rt(i);
【实验3-4】要求:
请编写一个函数fun,它的功能是:
根据以下公式求n的值(要求满足精度0.0005,
某项小于0.0005时停止迭代):
3T-11x21x2x3lx2x3x4lx2xx«
—=1+—4+'r十-…--+
23|5x55x73x5x7x95x5x-x(2w+l)
输出参考结果如下:
"C:
\Users\JYL\Debug\圆周率计算”exe1
请輸八计算精度;0.QOO5
在0.0OG50Q精展下计算的圆周宅为3.140578Pressanytocontinue^
算法分析:
1.编写函数fun进行通项公式求解
2.在主函数中对fun函数进行调用,采用循环调用的方式得到每一项的运算结果
3.判断通项公式的计算结果是否在精度范围要求内,从而确定循环是否继续执行
4.输出通项公式运算加和
【实验3-4】代码及运行结果:
Z)
tincludedoubleAin(dnAlaops>;irtna±n()
return导pi;
2.3延伸训练
【实验3-5】编写函数fun,其功能是:
根据以下公式求P的值,结果由函数值带回。
m与n为两个正整数
tlinclud«<5t(lio_h>Ainclude
AdefineEPS1e-6
doublefun(doublek)
<
doublei,f=1:
for(1=1;i<=x:
i++)
F*=i;
}
returnf:
'B:
\IMicrosoftVisual£tudio\C
请输入m和n的值:
12
3
输入数扌居潜误!
请重新输入用和“;
12
U
t*esuit-495.00U000
Pressanykeytocontziniue
intnair)()
doublentn.a.a^result;
叶iMFL请输入嘶Un的值;\nH);
scanf("UrtlF"
for(;fabs(n)'P^intFC-m入数JE错罠请重新输入酥口血W);scanf("Umf",&■,&n);
}
c=m-n;
result=fun(m)/(fun(n)*Fun(c));printfC'result^lfXn",result):
return0;
【实验3-6】编写一个函数,通过计算机随机产生一道四则运算题(两个操作数为在1-10之间的整数,操
作类型为加、减、乘、除中的任意一种),并要求作答。
若输入答案正确,则显示"Right!
”,否则显示"Notcorrect!
”。
然后,在main函数中调用该函数,完成若干道题目测试,并显示回答正确的题目数量。
提示:
关于生成随机数
iinclude
#include
#include-1鬧丄ri「「扛'■.
intmain()
b(
j_nti,number;
srandl(unsigned1time(HULT.;;
number=r^nd()%'01;
piin廿number);
程序运行实例:
【实验3-6】代码及运行结果:
#include
#include
#include
#include
intcalculate(ints);
intmain()
{
ints;
printf(”请输入需要完成的题目数量:
");
scanf("%d",&s);
printf("\n");
printf("回答正确%(道题目\n",calculate(s));return0;
}
intcalculate(ints)
{
inta=0;
intb=0;
intmode=0;
doublec=0;
doubleresult=0;
intcount=0;
inti;
srand((unsigned)time(NULL));
for(i=1;i<=s;i++)
{
a=rand()%10+1;
b=rand()%10+1;
mode=rand()%4;
printf("%d",a);
switch(mode)
{
case0:
printf("+");result=a+b;break;
case1:
printf("-");result=a-b;break;
case2:
printf("*");result=a*b;break;
case3:
printf("/");result=1.0*a/b;break;
default:
printf("somethingiswrong!
\n");break;
}printf("%d=\n",b);
printf("请输入计算结果:
\n");scanf("%lf",&c);
if(fabs(c-result)<1e-6)
{count++;printf("Right\n\n");
}
else
{printf("Wrong\n正确答案是:
%f\n\n",result);
}
}returncount;
*D:
\SHCUJl7HUSH
请输人需旻完预的题目範董;
3
7/7=
请输入计算结里:
1
Rijkt
19A
请输入计尊结果;
5
R丄ght
S»*h=
请输入计算结果:
25
Ih'ong
止确答案杲=30.000000
回答正确2進題目:
PressanyIkeytorontirme
lett.c
ninciuaecstuilo.n?
ninciuae^staio.n>ttlncludettincludeintcalculate(int5);intndin()
{
ints;
”伽FL请输人需要完戒的题目数量MF
SCAflf;
printFC^Vn");
printF("[c]锌定确td道题目:
\n",calciilats(s));return0;
}
intc«lcuLate(ints)
<
I11Ldfc0;
intt>=0;
int
doublec-fl;
doubleresult=6;
intcount=0;
inti;
srand((unsigned)tine(NULL)):
for(i=1;i<=s:
1*+)
3实验总结