c++程序实例docWord文档格式.docx
- 文档编号:15229625
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:13
- 大小:24.17KB
c++程序实例docWord文档格式.docx
《c++程序实例docWord文档格式.docx》由会员分享,可在线阅读,更多相关《c++程序实例docWord文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
pi="
setiosflags(ios:
:
fixed)<
setprecision(6)<
pi<
endl;
18.return
0;
19.}
运行结果为
pi=3.141592
注意:
不要把n定义为整型变量,否则在执行“t=s/n;
”时,得到t的值为0(原因是两个整数相除)。
【例3.13】求Fibonacci数列前40个数。
这个数列有如下特点:
第1、2个数为1、1。
从第3个数开始,每个数是其前面两个数之和。
即:
F1=1
(n=1)
F2=1
(n=2)
Fn=Fn-1+Fn-2(n≥3)
这是一个有趣的古典数学问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假设所有兔子都不死,问每个月的兔子总数为多少?
根据给出的每月兔子总数的关系,可编写程序如下:
3.using
4.int
5.{
6.long
f1,f2;
i;
8.f1=f2=1;
9.for(i=1;
i<
=20;
i++)
11.cout<
setw(12)<
f1<
f2;
12.//设备输出字段宽度为12,每次输出两个数
13.if(i%2==0)
cout<
14.//每输出完4个数后换行,使每行输出4个数
15.f1=f1+f2;
16.//左边的f1代表第3个数,是第1、2个数之和
17.f2=f2+f1;
18.//左边的f2代表第4个数,是第2、3个数之和
20.return
21.}
【例3.14】找出100~200间的全部素数。
编写程序如下:
m,k,i,n=0;
8.bool
prime;
//定义布尔变量prime
9.for(m=101;
m<
=200;
m=m+2)
//判别m是否为素数,m由101变化到200,增量为2
11.prime=true;
//循环开始时设prime为真,即先认为m为素数
12.k=int(sqrt(m));
//用k代表根号m的整数部分
13.for(i=2;
=k;
i++)
//此循环作用是将m被2~根号m除,检查是否能整除
14.if(m%i==0)
//如果能整除,表示m不是素数
15.{
16.prime=false;
//使prime变为假
17.break;
//终止执行本循环
18.}
19.if
(prime)//如果m为素数
20.{
21.cout<
setw(5)<
m;
//输出素数m,字段宽度为5
22.n=n+1;
//n用来累计输出素数的个数
23.}
24.if(n%10==0)
//输出10个数后换行
25.}
26.cout<
//最后执行一次换行
27.return
28.}
【例3.15】译密码。
为使电文保密,往往按一定规律将电文转换成密码,收报人再按约定的规律将其译回原文。
例如,可以按以下规律将电文变成密码:
将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。
见图3.20,字母按上述规律转换,非字母字符不变,如"
Wonderful!
转换为"
Asrhivjyp!
。
输入一行字符,要求输出其相应的密码。
图3.20
程序如下:
2.using
3.int
4.{
5.char
c;
6.while
((c=getchar(
))!
='
\n'
7.{
8.if((c>
a'
&
c<
z'
)
||
(c>
A'
Z'
))
9.{
10.c=c+4;
11.if(c>
'
+4
c>
12.c=c-26;
13.}
14.cout<
16.cout<
17.return
运行结果如下:
IamgoingtoBeijing!
↙
MeqksmrkxsFimnmrk!
while语句中括号内的表达式有3个作用:
∙从键盘读入一个字符,这是用getchar函数实现的;
∙将读入的字符赋给字符变量c;
∙判别这个字符是否为'
(即换行符)。
如果是换行符就执行while语句中的复合语句(即花括号内的语句),对输入的非换行符的字符进行转换处理。
按前面分析的思路对输入的字符进行处理,有一点请读者注意,内嵌的if语句不能写成:
if(c>
||c>
c=c-26;
因为所有小写字母都满足“c>
”条件,从而也执行“c=c-26;
”语句,这就会出错。
因此必须限制其范围为“c>
&
c<
+4”,即原字母为'
W'
到'
,在此范围以外的不是原大写字母W~Z,不应按此规律转换。
请考虑:
为什么对小写字母不按此处理,即写成c>
+4而只须写成“c>
”即可。
计算拉格朗日插值的源程序
#include<
stdio.h>
conio.h>
stdlib.h>
//#include<
alloc.h>
floatLagrange(float*x,float*y,floatxx,intn)
{
inti,j;
float*a,yy=0.0;
a=(float*)malloc(n*sizeof(float));
for(i=0;
=n-1;
a[i]=y[i];
for(j=0;
j<
j++)
if(j!
=i)a[i]*=(xx-x[j])/(x[i]-x[j]);
yy+=a[i];
}
free(a);
returnyy;
voidmain()
floatx[4]={0.56160,0.56280,0.56401,0.56521};
floaty[4]={0.82741,0.82659,0.82577,0.82495};
floatxx=0.5635,yy;
floatLagrange(float*,float*,float,int);
yy=Lagrange(x,y,xx,4);
//clrscr();
printf("
x=%f,y=%f/n"
xx,yy);
getch();
编译原理词法分析器c++源程序
#include<
iostream.h>
fstream.h>
string.h>
process.h>
/*头文件*/
voidinit();
char*DchangeB(char*buf);
intsearch(char*buf,inttype,intcommand);
voidintdeal(char*buffer);
voidchardeal(char*buffer);
voiderrordeal(charerror,intlineno);
voidscanner();
voidinit()
{
char*key[]={"
"
auto"
break"
case"
char"
const"
continue"
default"
do"
double"
"
else"
enum"
extern"
float"
for"
goto"
if"
int"
long"
register"
return"
short"
signed"
sizeof"
static"
struct"
switch"
typedef"
union"
unsigned"
void"
volatile"
while"
};
/*C语言所有关键字/
char*limit[]={"
("
)"
["
]"
->
."
!
++"
--"
~"
*"
/"
%"
+"
-"
>
="
=="
||"
+="
-="
*="
/="
;
{"
}"
#"
_"
/*运算、限界符*/
fstreamoutfile;
inti,j;
char*c;
outfile.open("
key.txt"
iOS:
out);
32;
outfile<
key[i]<
outfile.close();
Limit.txt"
ios:
38;
limit[j]<
c="
bsf.txt"
cs.txt"
output.txt"
char*DchangeB(char*buf)
inttemp[20];
char*binary;
intvalue=0,i=0,j;
buf[i]!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 程序 实例 doc