版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序是在VC6.0下编译的,所以头文件和TC的不太一样!
4-8
#include<iostream>
#definepi3.1415
voidmain()
|
floatr,h,rl,ra,ss,sv,cv;
printf("输入圆的半径和圆柱的高\n\n");
scanf”,&r,&h);
rl=2*pi*r;
ra=pi*r*r;
ss=4*pi*r*r;
sv=4*pi*r*r*r/3;
cv=ra*h;
printf(〃圆周长为:%f\n\n圆面积为:%f\n\n圆球表面积为:%f\n\n圆球体积为:%f\n\n
圆柱体积为:%f\n\n,z,rl,ra,ss,sv,cv);
)
4-9
#include<iostream>
voidmain()
(
floatF,c;
printf(〃输入一个华氏温度\n\n〃);
scanf&F);
c=5*(F-32)/9;
printf("摄氏温度为:%.2f\n\n〃,c);
}
第五章
5-4
#include<iostream>
voidmain()
inta,b,c,max;
printf(〃输入三个整数a,b,c\n\n");
scanf(〃%d%d%d〃,&a,&b,&c);
if(a>b)max=a;
elsemax=b;
if(max<c)max=c;
printf(〃最大的数为:%d\n\n,z,max);
)
5-5
#include<iostream>
voidmain()
(
floatx,y;
printf("输入x\n\n〃);
scanf&x);
if(x<l)y=x;
elseif(x<10)y=2*xT;
elsey=3*x-l1;
printfCy=%f\n\nz,y);
}
5-6
ttinclude<iostream>
voidmain()
(
floatm;
intn;
printf(〃输入成绩\n\n〃);
scanf&n);
n=ni/10;
switch(n)
case0:
case1:
case2:
case3:
case4:
case5:printf(〃E\n\n〃);break;
case6:printf(,zD\n\n/z);break;
case7:printf(,/C\n\n/,);break;
case8:printf(/zB\n\nz/);break;
case9:
case10:printf(z,A\n\n/z);break;
)
)
5-7
#include<iostream>
#include<math.h>
voidmain()
(
inta,b,c,i,j,n;
printf(〃输入五位正整数\n\n〃);
scanf(/z%d/z,&a);
printfC\n\nz,);
c=a;
for(i=l;;i++)
(
b=c%10;
c=c/10;
printf(,z%dz,,b);
if(c=0)
(
printf(〃\n\n〃);
printf("正整数为%d位数\n\n〃,i);break;
)
)
c=a;
for(j=i-l;j>=0;j—)
n=pow(10,j);
b=c/n;
c=c%n;
printf(,z%d\n,z,b);
)
)
5-8
if语句:
#include<iostream>
voidmainO
{
intI;
floatbonus;
printf(〃输入当月利润I\n\n〃);
scanf(线d”,&,I);
if(I<=100000)bonus=I/10;
elseif(I<=200000)bonus=10000+(I-100000)*7.5/100;
elseif(I<=400000)bonus=10000+7500+(1-200000)*5/100;
elseif(I<=600000)bonus=10000+7500+10000+(1-400000)*3/100;
elseif(I<=1000000)bonus=10000+7500+10000+6000+(1-600000)*1.5/100;
elsebonus=10000+7500+10000+6000+6000+(1-1000000)*1/100;
printf(“应发奖金数为:%f\n\n,z,bonus);
)
switch语句:
#include<iostream>
voidmain()
(
intI,n;
floatbonus;
printf(〃输入当月利润I\n\n〃);
scanf&I);
if(I>1000000)n=10;
elsen=I/100000;
switch(n)
case0:bonus=I/10;break;
case1:bonus=10000+(I-100000)*7.5/100;break;
case2:
case3:bonus=l0000+7500+(1-200000)*5/100;break;
case4:
case5:bonus=10000+7500+10000+(1-400000)*3/100;break;
case6:
case7:
case8:
case9:bonus=10000+7500+10000+6000+(I-600000)*l.5/100;break;
case10:bonus=10000+7500+10000+6000+6000+(1-1000000)*1/100;break;
)
printf(“应发奖金数为:%f\n\n,z,bonus);
)
5-9
#include<iostream>
voidmain()
(
inta,b,c,d,temp,min;
printf(〃输入四个数a,b,c,d\n\n");
scanf(,z%d%d%d%d,z,&a,&b,&c,&d);
if(a>b)
{
temp=a;
a=b;
b=temp;
)
if(a>c)
(
temp=a;
a=c;
c=temp;
}
if(a>d)
{
temp=a;
a=d;
d=temp;
}
printf(〃由小到大排列为:\n\n");
printfC%da);
if(b>c)
{
temp=b;
b=c;
c=temp;
)
if(b>d)
|
temp二b;
b=d;
d二temp;
)
printfC%d",b);
if(c>d)
(
temp=c;
c=d;
d=temp;
)
printf(,z%d〃,c);
printfd);
5-10
#include<iostream>
#include<math.h>
voidmain()
floatx,y,a,b,c,d;
printf(〃输入点的坐标\n\n〃);
scanf”,&x,&y);
a=sqrt((2-x)*(2-x)+(2-y)*(2-y));
b=sqrt((2-x)*(2-x)+(-2-y)*(-2-y));
c=sqrt((-2-x)*(-2-x)+(-2-y)*(-2-y));
d=sqrt((-2-x)*(-2-x)+(2-y)*(2-y));
if(a<=l||b<=l||c<=l||d<=l)printf(〃该点建筑高度为:10m〃);
elseprintf(〃该点建筑高度为:0m〃);
}
弟八早:
6-1
#include<iostream>
#include<math.h>
voidmain()
{
intm,n,max,min,i,k;
printf(〃输入两个正整数\n\n〃);
scanf&m,&n);
if(m>n)k=n;
elsek=m;
for(i=l;i<=k;i++)
(
if((m%i==0)&&(n%i=:=0))max=i;
)
printf("最大公约数为:%d\n\nz,,max);
if(m>n)k=m;
elsek二n;
for(i=k;;i++)
(
if((i%m=0)&&(i%n=0))
mm=i;
break;
)
)
printf(〃最小公倍数为:%d\n\nz/,min);
6-2
#include<iostream>
voidmain()
(
charc;
int1=0,b=0,n=0,e=0;
printf(〃输入一行字符\n\n〃);
while((c=getchar())!='\n)
{
if((c>='a'&&c〈二'z')||(c>='A'&&c<='Z'))1+=1;
elseif(c==,')b+=l;
elseif(c>=48&&c<=57)n+=l;
elsee+=l;
)
printf(〃英文字母个数为:%d\n\n空格个数为:%d\n\n数字个数为:%d\n\n其他字符个
数为:%d\n\nz,,1,b,n,e);
)
6-3
#include<iostream>
^include<math.h>
voidmain()
(
intn,k,i;
floata,s=0;
printf(〃输入n和a\n\n〃);
scanf(,,%d%fz/,&n,&a);
for(i=0;i<n;i++)
{
k=pow(10,i);
s=s+(n-i)*a*k;
)
printf(〃和s=%f\n\n,z,s);
6-4
ttinclude<iostream>
voidmain()
(
intn,s,S=0,i,j;
printf(〃输入n\n\n〃);
scanf("%d",&n);
for(i=l;j<=n;i++)
(
s=l;
for(j=l;j<=i;j++)
{
s=s*j;
)
S+=s;
)
printf(〃和S=%d\n\n",S);
6-5
ttinclude<iostream>
voidmain()
inti,m,n,t;
intsl=O,s2=0;
floats3=0,s,1;
printf(〃输入m,n,t的值\n\n〃);
scanf(//%d%d%d,/,&m,&n,&t);
for(i=l;i<=m;i++)
(
sl+=i;
)
for(i=l;i<=n;i++)
{
s2+=i*i;
)
for(i=l;i<=t;i++)
(
1=1.0/i;
s3+=l;
)
s=sl+s2+s3;
printf(〃和s=%f",s);
}
6-6
#include<iostream>
voidmain()
(
intm,n,k,i,j;
printf("水仙花数为:\n〃);
for(i=100;i<=999;i++)
(
j=i;
m=j%10;
j=j/10;
n=j%10;
k=j/10;
if(i=m*m*m+n*n*n+k*k*k)printfC%d〃,i);
}
6-7
#include<iostream>
#include<math.h>
voidmain()
{
inti,j,k,s;
for(i=l;i<=1000;i++)
(
s=0;
for(j=l;j<i;j++)
(
if(i%j=0)s+=j;
}
if(s==i)
(
printf(〃\n\n");
printf(zz%ditsfactorsare”,i);
for(j=l;j<i;j++)
(
if(i%j=O)printf(z/%d”,j);
)
)
)
}
6-8
ttinclude<iostream>
voidmain()
{
intn,i;
floatfl,f2,s,temp;
printf(〃输入n\n\n");
scanf("%d",&n);
f1=2.0;f2=3.O;s=f1;
for(i=l;i<=n-l;i++)
(
s+=f2/fl;
temp=f2;
f2=fl+f2;
fl=temp;
)
printf(〃前%d项利为%f〃,n,s);
)
6-9
#include<iostream>
#include<math.h>
voidmain()
(
inti,n,1=100;
floatm,s=0;
printf("输入n\n\n,z);
scanf("%d〃,&n);
m=l;
for(i=l;i<=n;i++)
(
s+=2*m;
m=m*0.5;
)
printfm%d次落地时经过%f米\n\n〃,n,s-1);
printf("第%d次落地后反弹%f米\n\n〃,n,m);
)
6-10
#include<iostream>
voidmain()
(
intm=l,n,i;
printf(〃输入n\n\n,z);
scanf(〃%d〃,&n);
for(i=l;i<n;i++)
|
m=(m+l)*2;
)
printf("一共摘了%d个桃子\n\n〃,m);
}
6-11
#include<iostream>
#include<math.h>
voidmain()
(
floata,xl,x2;
printf("输入a\n\n〃);
scanf&a);
xl=a/2;
1oop:x2=(x1+a/xl)/2;
if(fabs(xl-x2)>le-5)
(
xl=x2;
gotoloop;
}
elseprintf(〃\n\na的平方根为%f\n\n”,x2);
)
6-12
#include<iostream>
#include<math.h>
voidmain()
(
floatf(float);
floatxpoint(float,float);
floatroot(float,float);
floatx,xl,x2,fl,f2;
do
(
printf("输入xl,x2\n\n,z);
scanf&xl,&x2);
fl=f(xl);
f2=f(x2);
}while(fl*f2>0);
x=root(xl,x2);
printf(〃方程在1.5附近的根为:%f\n\n〃,x);
)
floatf(floatx)
(
floaty;
y=2*x*x*x-4*x*x+3*x-6;
return(y);
)
floatxpoint(floatxl,floatx2)
(
floaty;
y=(xl*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return(y);
)
floatroot(floatxl,floatx2)
(
floatx,y,yl;
yl=f(xl);
do
x=xpoint(xl,x2);
y=f(x);
if(y*yl>0)
(
yl二y;
xl=x;
)
else
x2二x;
}while(fabs(y)>le-4);
return(x);
}
6-13
#include<iostream>
#include<math.h>
voidmain()
(
floatf(float);
floatroot(float,float);
floatx,xl,x2,fl,f2;
do
(
printf(〃输入xl,x2\n\n〃);
scanf&xl,&x2);
fl=f(xl);
f2=f(x2);
}while(fl*f2>0);
x=root(xl,x2);
printf("方程的根为:%f\n\n〃,x);
}
floatf(floatx)
floaty;
y=2*x*x*x-4*x*x+3*x-6;
return(y);
}
floatroot(floatxl,floatx2)
(
floatx,y;
do
(
y=f((xl+x2)/2);
if(y<-le-4)
(
xl=(xl+x2)/2;
}
elseif(y>le-4)
(
x2=(xl+x2)/2;
}
elsex=(xl+x2)/2;
}while(fabs(y)>le-4);
return(x);
}
6-14
ttinclude<iostream>
voidmain()
(
inti,j,k;
for(i=0;i<=3;i++)
(
for(j=0;j<=2-i;j++)
(
printfC");
)
for(k=0;k〈=2*i;k++)
printf("*");
)
printfC\n/Z);
)
・for(i=0;i〈=2;i++)
(
for(j=0;j<=i;j++)
printf(/z");
for(k=0;k<=4-2*i;k++)
(
printf("*");
}
printf("\n");
)
)
6-15
ttinclude<iostream>
voidmain()
(
chari,j,k;
for(i='X';i<='Z';i++)
for(j='X';j<=Z';j++)
(
if(i!=j)
for(k='X';k<='Z';k++)
(
if(i!=k&&j!=k)
(
if(i!='X'&&k!='X"&&k!='Z')
printf(v\nA-%c\nB一%c\nC一%c\n”,i,j,k);
)
}
)
第七章
7-1
tiinclude<iostream>
#include<math.h>
voidmain()
(
inti,j;
inta[101];
printf("素数为:\n\n");
for(i=l;i<=100;i++)
(
a[i]=i;
)
for(i=3;i<=100;i++)
(
for(j=2;j<=sqrt(a[i]);j++)
(
if(a[i]%j=0)
{
a[i]=0;
break;
}
)
)
for(i=2;i<=100;i++)
(
if(a[i]!=0)printf("%d",a[i]);
)
7-2
ftinelude<iostream>
voidmain()
(
inta[10],i,j,temp;
printf("输入10个整数\n\n");
for(i=0;i<10;i++)
(
scanf;
}
for(i=0;i<10;i++)
(
for(j=i+l;j<10;j++)
(
if(a[i]>a[jj)
(
temp=a[i];
a[i]=a[j];
a[j]=temp;
)
)
)
printf("排序后的输出为:\n\n〃);
for(i=0;i<10;i++)
(
printf("%d",a[i]);
}
printf("\n\n");
7-3
#include<iostream>
voidmain()
(
inta[9],i,s=0;
printf(〃输入一个3*3整型矩阵\n\n〃);
for(i=0;i<9;i++)
(
scanf&a[i]);
}
for(i=0;i<9;i+=4)
(
s+=a[i];
)
printf("对角线元素之和为:%d\n\n",s);
7-4
#include<iostream>
voidmain()
(
inta[ll]={l,2,3,4,5,6,7,8,9,10);
inti,j,n,tempi,temp2;
printf(〃输入一个数n\n\nz/);
scanf(〃%d〃,&n);
if((a[0]-a[9])>0)
(
if(n<=a[9])
(
a[10]=n;
)
else
for(i=0;i<10;i++)
if(a[i]<n)
templ=a[i];
a[i]=n;
for(j=i+l;j<ll;j++)
(
temp2=a[j];
a[j]=templ;
templ=temp2;
)
break;
}
)
}
)
if((a[9]-a[0])>0)
(
if(n>=a[9])
(
a[10]=n;
)
else
(
for(i=0;i<10;i++)
(
if(a[i]>n)
(
templ=a[i];
a[i]=n;
for(j=i+l;j<ll;j++)
(
temp2=a[j];
a[j]=templ;
templ=temp2;
)
break;
}
)
)
for(i=0;i<ll;i++)
(
printf(z,%dz,,a[i]);
)
7-5将一个数组中的值按逆序重新排列
#include<iostream>
#defineN5
voidmain()
(
inta[N];
inti,temp;
printf(〃输入5个个数\n\n〃);
for(i=0;i<N;i++)
(
scanf(,z%dzz,&a[i]);
)
for(i=0;i<=N/2;i++)
(
temp=a[i];
a[i]=a[N-i-l];
a[N-i-l]=temp;
)
for(i=0;i<N;i++)
(
printf("%d",a[i]);
)
printf(〃\n\n〃);
)
7-6输出杨辉三角形(耍求输出10行)
#include<iostream>
#include<stdio.h>
voidmain()
{
inta[10][10]={l};
inti,j;
for(i=l;i<10;i++)
(
for(j=0;j<=i;j++)
(
a[i][0]=a[i-l][0];
a[i][j]=a[i-l][j-l]+a[i-l][j];
)
)
for(i=0;i<10;i++)
(
for(j=0;j<=i;j++)
(
printf("%4d",a[i][j]);
)
printf("\n\n");
)
}
7-7输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行每•列和对角线之和均相等。
要求输出1——n的平方
#include<iostream>
#defineN7
voidmain()
inta[N][N]={0};
inti,j,k;
i=0;
j=(N-l)/2;
a[i][j]=l;
for(k=2;k<=N*N;k++)
(
i=i-l;
j=j+l;
if((i<0)&&(j>N-D)
(
i=i+2;
j=j-l;
)
else
(
if(i<0)i=N-l;
if(j>N-l)j=0;
)
if(a[i][j]=0)
(
a⑴[j]=k;
)
else
(
i=i+2;
j=j-l;
a[i][j]=k;
)
}
for(i=0;i<N;i++)
(
for(j=0;j<N;j++)
(
printf("%4d",a[i][j]);
)
printf("\n'n");
)
7-8找出一个二维数组中的鞍点,即该位置上的元素在该行上最大•在该列上最小。也可能
没有鞍点。
^include<iostream>
voidmain()
(
inta[4][4],i,j,max,min,kl,k2,flag;
printf("输入一个4*4的数组\n\n");
for(i=0;i<4;i++)
(
for(j=0;j<4;j++)
(
scanf("%d”,&a[i][j]);
)
)
printf("鞍点为:\n\n");
for(i=0;i<4;i++)
(
max=a[i][0];
for(j=0;j<4;j++)
(
if(max<=a[i][j])
(
max=a[i][j];
kl=j;
)
)
min=a[0][kl];
for(j=0;j<4;j++)
if(min>-a[j][kl])
min=a[j][kl];
k2=j;
}
)
if((max!=min))flag=O;
else
(
flag=l;
printf("%d\n",max);
break;
)
)
if(flag==O)printf("不存在\n\n");
)
7-9有15个数由大到小顺序存放在一个数组中,输入一个数吗,要求用折半查找法找出该
数十数组中第几个元素的值。如果该数不在数组中,则输出“无此数
#include<iostream>
voidmain()
{
floata[15]={100,98,65,55,34,23,23,12,11,9,7,6,4,3,2},n;
inti,low,high,mid;
printf("原数组为:\n\n");
for(i=0;i<15;i++)
(
printf("%6.2f”,a[i]);
)
printf("\n\n输入一个数n\n\n");
scanf('f",&n);
low=0;
high=14;
i=0;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==n)
(
printf(〃该数是数组中第%d个元素\n\n〃,mid+1);
i++;
break;
)
elseif(a[mid]<n)high=mid-l;
elselow=mid+l;
)
if(i==0)printf(〃无此数!!\n\n");
)
7-10统计一篇文章中其中英文大写字母小写字母数字空格以及其他字符的个数
#include<iostream>
voidmain()
(
chara[3][80];
inti,j,upon=0,low=0,num=0,spa=0,oth=0;
for(i=0;i<3;i++)
(
printf(〃输入第%d行文字\n\n〃,i);
gets(a[i]);
for(j=0;j<80&&a[i][j]!=\0*;j++)
(
if(a[i][j]>-A,[j]<-Z')upon+=l;
elseif(a[i][j]>-a,&&a[i][j]<=,z)low+=l;
elseif(a[i][j]>=48&&a[i][j]<=57)num+=l;
elseif(a[i][j]==,')spa+=l;
elseoth+=l;
)
)
printf("英文大写字母:%d个\n\n”,upon);
printf("英文小写字母:%d个\n\n”,low);
printf("数字:%d个\11\、,num);
printf("空格:/d个\n\n”,spa);
printf("其他字符:%d个\n\n”,oth);
7-11
itinclude<iostream>
voidmain()
{
inti,j;
for(i=0;i<5;i++)
(
for(j=0;j<=i;j++)
(
printfC");
}
for(j=i;j<i+5;j++)
(
printfC*");
)
printf("\n");
7-12有一行电文,已按下面规律译成密码:
A—Za—zB—Yb—y即第一个字母变成第26个字母,第i个字母变成第(26-i
+1)个字母,非字母字符不变要求将密码译回原文,并输出密码和原文。
#include<iostream>
voidmain()
{
chara[80],b[80];
inti,j;
printf("输入密码\n\n");
gets(a);
for(i=0;i<80&&a[i]!='\0';i++)
(
if((a[i]>=,A,)&&(a[i]<=,Z'))
(
b[i]=155-a[i];
)
elseif((a[i]>=,a')&&(a[i]<='z'))
(
b[i]=219-a[i];
)
elseb[i]=a[i];
)
b[i]=\0\
printf(〃密文为:\n\n〃);
puts(a);
printf(〃原文为:\n\nz,);
puts(b);
7-13连接两个字符串,不用strcat函数
#include<iostream>
voidmain()
chara[80],b[80];
inti,j,k;
printf("输入第1个字符串\n\n");
gets(a);
printf("输入第2个字符串\n\n");
gets(b);
for(i=0;i<80;i++)
(
if(a[i]=>\0,)
(
k=i;
for(j=0;j<80&&b[j]!=>\0*;j++)
(
a[k]=b[j];
k++;
}
a[k]=\0';
break;
)
)
printf("连接后字符串为:\n");
puts(a);
7-14
#include<iostream>
voidmain()
(
chara[80],b[80];
inti,j,k;
printf(〃输入第1个字符串\n\n〃);
gets(a);
printf(〃输入第2个字符串\n\n〃);
gets(b);
for(i=0;(i<80)&&(a[i]!=\0))&&(b[i]!=\0');i++)
{
k=a[i]-b[i];
if(k>0)
(
printfC\n字符串a大于字符串b:%4d\n〃,k);
break;
)
elseif(k<0)
{
printfC\n\n字符串a小于字符串b:%4d\n\rT,k);
break;
)
elsek=0;
)
if(k==0)printf("\n\n字符串a等于字符串b:%4d\n\n〃,k);
7-15编写一个程序,将字符数组s2中的全部字符复制到字符数组si中复制时要将'\0,
也复制过去
^include<iostream>
voidmain()
(
charsi[80],s2[80];
inti,j;
printf(〃输入数组sl\n\n,z);
gets(sl);
printf(〃输入数组s2\n\n〃);
gets(s2);
for(i=0;i<80&&s2[i]!=\0';i++)
si[i]=s2[i];
)
Sl[i]=\0,;
printf("\n\n复制后的数组为:\n\n〃);
puts(sl);
)
第八章
8-1求最大公约数和最小公倍数
#include<iostream>
voidmain()
(
intmax_div(int,int);
intmin_mul(int,int);
intm,n;
printf("输入两个整数\n\n");
scanf(n%d%d'\&m,&n);
if(max_div(m,n)==O)printf(n\n\n无最大公约数为\n\rT);
elseprintf(An\n最大公倍数为:%d\n\n",max_div(m,n));
printf("\n\n最大公倍数为:%d\n\nn,min_mul(m,n));
)
intmax_div(intkl,intk2)
(
intmin(int,int);
inti,k,flag;
k=min(kl,k2);
for(i=k;i>l;i—)
(
if((kl%i==0)&&(k2%i==0))
(
return(i);
flag=l;
break;
)
elseflag=0;
)
if(flag==0)retum(O);
)
intmin_mul(intkljntk2)
(
intmax(int,int);
inti,k;
k=max(kl,k2);
for(i=k;;i++)
if((i%k1==0)&&(i%k2==0))
(
return(i);
break;
intmin(intkljntk2)
(
intmin;
min=kl;
if(kl>k2)min=k2;
return(min);
)
intmax(intkl,intk2)
(
intmax;
max=kl;
if(kl<k2)max=k2;
return(max);
}
8-2
#include<iostream>
#include<math.h>
voidmain()
(
voidroot1(float,float,float);
voidroot2(float,float,float);
voidroot3(float,float,float);
floata,b,c,k;
printf("输入a,b,c的值\n\n”);
scanf("%f%f%f”,&a,&b,&c);
k=b*b-4*a*c;
if(k>0)rootl(a,b,c);
elseif(k==O)root2(a,b,c);
elseroot3(a,b,c);
}
voidroot1(floata,floatb,floatc)
(
floatp,q;
p=-b/(2*a);
q=sqrt(b*b-4*a*c)/(2*a);
printf("\n\n方程的两个根为:xl=%6.2f,x2=%6.2f\n\nH,p+q,p-q);
voidroot2(floata,floatb,floatc)
(
floatp;
p=-b/(2*a);
printf("\n\n方程的两个根为:xl=x2=%6.2f\n\n",p);
)
voidroot3(floata,floatb,floatc)
(
floatp,q;
p=-b/(2*a);
q=sqrt(-b*b+4*a*c)/(2*a);
printf("\n\n方程的两个根为:xl=%6.2f+%6.2fi,x2=%6.2f-%6.2fi\n\nn,p,q,p,q);
}
8-3
#include<iostream>
voidmain()
(
intprime(int);
intx;
printf("输入一个正整数\n\n");
scanf("%dH,&x);
if(prime(x)==O)printf("\n\n此数为素数\n\n");
elseprintf('\n\n此数不是素数\n\n");
)
intprime(intx)
(
inti,flag;
for(i=2;i<x;i++)
(
if(x%i=0)
(
flag=l;
break;
)
elseflag=0;
)
return(flag);
)
8-4
#include<iostream>
voidmain()
voidexchange(intal3][3J);
inta[3][3],i,j;
printf("输入一个3*3的矩阵\n\n");
for(i=0;i<3;i++)
(
for(j=0;j<3;j++)
(
scanf("%d",&a[i][j]);
)
)
exchange(a);
printf("\n\n转置后的矩阵为:\n\nn);
for(i=0;i<3;i-H-)
(
for(j=0;j<3;j++)
(
printf("%d",a[i][j]);
}
printf("\n");
)
}
8-5
#include<iostream>
voidmain()
{
voidexchange(charstr[J);
charstr[8O];
printf("输入一个字符串\n\n");
gets(str);
exchange(str);
printf(n\n\n反序字符串为:\n\nn);
puts(str);
}
voidexchange(charstr[])
(
inti,j,k;
chartemp;
for(i=0;;i++)
(
if(str[i]==\O')break;
k=i/2;
for(j=0;j<=k;j++)
(
temp二str|j];
str[j]=str[M-j];
str[i-lj]=temp;
)
str[i]=,\O,;
)
8-6
#include<iostream>
voidmain()
(
voidstrcat(charstr1[],charstr2[]);
charstrl[80],str2[80];
printf("输入strl\n\nM);
gets(strl);
printf("\n\n输入str2\n\nH);
gets(str2);
strcat(strl,str2);
printf(”\n\n连接后的字符串为:\n\nn);
puts(strl);
)
voidstrcat(charstrl[],charstr2[])
(
inti,j;
for(i=0;;i++)
(
if(strl[i]==,\O,)
(
for(j=0;str2|j]!=,\0,;j++)
(
strl[i]=str2|j];
i+=l;
)
break;
)
)
strl[i]=W;
)
8-7
#include<iostream>
voidmain()
voidstrcpy(charstr1[],charstr2[]);
charstrl[80],str2[80];
printf("输入str2\n\nu);
gets(str2);
strcpy(strl,str2);
printf(”\n\n复制后的字符串为:\n\nM);
puts(strl);
)
voidstrcpy(charstrl[],charstr2[])
(
inti,j=0;
for(i=0;str2[i]!=W;i++)
(
if((str2[i|==,a,)ll(str2[i]==,e,)ll(str2[i]=='i,)ll(str2[i]=='o,)ll(str21i]==,u,))
(
strl[j]=str2[i];
j++;
)
)
strl[j]=W;
}
8-8
#include<iostream>
voidmain()
(
voidstradd(charstr[]);
charstr[8O];
printf("输入一串数字\n\n”);
gets(str);
stradd(str);
printf(u\n\n加空格后的字符串\n\n”);
puts(str);
}
voidstradd(charstr[])
(
chara[80];
inti=0,j;
for(j=0;str[j]!='\0,;j++)
a[i]=str[j];
a[i+l]=
i+=2;
a[i]='\O,;
for(i=0;a[i]!=W;i++)
(
str[i]=a[i];
)
str|i]=W;
8-9
#include<iostream>
voidmain()
(
voidnum(charstr[],inta[]);
charstr[8O];
inta[4]={0};
printf("输入一个字符串\n\n");
gets(str);
num(str,a);
printf("字母个数为:%d\n",a[0]);
printf("数字个数为:%d\n",a[l]);
printf("空格个数为:%d\n",a[2]);
printf("其它字符个数为:%d\n",a[3]);
)
voidnum(charstr[],inta|])
(
inti,word=0,num=0,span=0,oth=0;
for(i=0;str[i]!=\0';i++)
(
if((str[i]>='A'&&str[i]<='Z')ll(str[i]>='a'&&str[i]<=,z,))word+=l;
elseif(str[i]>=48&&str[i]<=57)num+=l;
elseif(str[i]==')span+=1;
elseoth+=1;
)
a[0]=word;
a[l]=num;
a[2]=span;
a[3]=oth;
8-10
#include<iostream>
voidmain()
intword(charc);
intlongest(charstr[]);
inti;
charstr[80];
printf("输入一行字符串\n\n");
gets(str);
printf(M\n\n最长的单词为:\n\nn);
for(i=longest(str);word(str[i]);i++)
printf(M%cn,str[i]);
printf(H\n");
)
intword(charc)
(
if((c>='a,&&c<=,z,)ll(c>='A,&&c<=,Z,))return1;
elsereturn0;
)
intlongest(charstr[])
(
inti,flag=l,len=0,point,max_len=0,max_point;
for(i=0;i<=strlen(str);i++)
(
if(word(str[i]))
(
if(flag==l)
(
point=i;
flag=0;
)
elselen++;
)
else
(
flag=l;
if(len>max_len)
(
max_len=len;
max_point=point;
)
len=0;
)
return(max_point);
8-11
#include<iostream>
voidmain()
charstr[80];
voidsort(charstr|]);
printf("输入一个字符串\n\n)
gets(str);
sort(str);
printf(H\n\n字符由小到大排序为:\n\n");
puts(str);
)
voidsort(charstr[])
(
inti,j;
chartemp;
for(i=0;i<strlen(str);i++)
(
for(j=0;j<strlen(str)-i-1;j++)
(
if(str[j]>str[j+l])
(
temp=str|j];
str[j]=str[j+l];
str|j+l]=temp;
)
)
8-12
#include<iostream>
#include<math.h>
voidmain()
(
inta,b,c,d;
floatroot(inta,intb,intc,intd);
printf("输入a,b,c,d\n\nH);
scanf(”%d%d%d%d”,&a,&b,&c,&d);
printf(”\n\n在1附近的根为:%f\n\nM,root(a,b,c,d));
)
floatroot(inta,intb,intc,intd)
floatx=l,xl,f,fl;
do
{
xl=x;
f=((a*x1+b)*x1+c)*x1+d;
fl=(a*xl+b)*xl+c;
x=xl-f7fl;
)while(fabs(x-x1)>=1e-5);
return(x);
)
8-13
#include<iostream>
voidmain()
(
floatp(int,float);
intn;
floatx;
printf("输入n和x\n\nu);
scanf("%d%f';&n,&x);
printf("\n\n%d阶勒德让多项式的值为:%f\n\n'\n,p(n,x));
)
floatp(intn,floatx)
(
if(n=0)return1;
elseif(n==l)returnx;
elsereturn((2*n-l)*x-p(n-l,x)-(n-l)*p(n-2,x))/n;
)
8-14
#include<iostream>
#definen12
#definen25
floata_stu(nl],a_cou[n2];
voidmain()
(
voidinput(floata[][n2]);
voidstu_aver(floata[][n2]);
voidcou_aver(floata[][n2]);
inthightest(int*s,intfloata[][n2]);
floatd(floata[][n2]);
inti,j,s=0,c=0;
floatscore[nl][n2],h;
input(score);
stu_aver(score);
cou_aver(score);
printf(H\n\n序号课程12345平均成绩\n\n");
for(i=0;i<nl;i++)
(
printf(HNO.%d
for(j=0;j<n2;j++)
(
printf(M%8.2fn,score[i][j]);
)
printf(n%8.2f\n\nn,a_stu[i]);
}
printf("课程平均)
for(i=0;i<n2;i++)
(
printf(,,%8.2f'\a_cou[i]);
)
h=hightest(&s,&c,score);
printf(”\n\n最高成绩为:%f是第%d号学生,第%d门课的成绩\n\n”,h,s,c);
printf(”平均方差为:%hn\n",d(score));
)
voidinput(floata[][n2])
(
inti,j;
for(i=0;i<nl;i++)
{
printf(n\n\n输入%d个学生的5个成绩\n\n",i+l);
for(j=0;j<n2;j++)
(
scanf("%f”,&a[i皿);
)
)
)
voidstu_aver(floata[][n2])
(
floats;
for(i=0;i<nl;i++)
{
s=0;
for(j=0;j<n2;j++)
s+=a[i][j];
)
a_stu[i]=s/n2;
)
)
voidcou_aver(floata[][n2])
(
floats;
for(i=0;i<n2;i++)
(
s=0;
for(j=0;j<nl;j++)
(
s+=a[j][i];
)
a_cou[i]=s/nl;
}
)
inthightest(int*s,int*c,floata[][n2])
(
floathightest=O;
inti,j;
for(i=0;i<nl;i++)
(
for(j=0;j<n2;j++)
(
if(a[i][j]>hightest)
(
hightest=a[i][j];
*s=i+l;
*c=j+l;
)
)
)
return(hightest);
)
floatd(floata[][n2])
(
inti;
floatx=0,y=0;
for(i=0;i<nl;i++)
x+=a_stu[i]*a_stu|i];
y+=a_stu[i];
)
return(x/nl-(y/nl)*(y/n1));
)
8-15
#include<iostream>
#defineN3
voidmain()
(
voidinput(intnum[],charname[Nl[8]);
voidsort(intnum[],charname[N][8]);
voidsearch(intnum[],charname[N][8|,intn);
intflag,n,num[N];
charc,name[N][8];
input(num,name);
sort(num,name);
for(flag=l;flag;)
(
printf("输入要查找的职工号\n\n”);
scanf("%d'\&n);
search(num,name,n);
printf("是否继续查找?Y/N?\n\n");
c=getchar();
if(c==N,llc=='n,)flag=0;
)
)
voidinput(intnum[],charname[N][8])
{
inti;
for(i=0;i<N;i++)
(
printf("输入职工号\n\n");
scanf("%d",&num[i]);
printf("输入职工姓名\n\n");
getchar();
gets(name[i]);
)
)
voidsort(inlnum[],charname[N][8])
inti,j,min,templ;
chartemp2[8];
for(i=0;i<N;i++)
(
min=i;
for(j=i;j<N;j++)
(
if(num[min]>num[j])min寸
)
tempi=num[i];
strcpy(temp2,name[i]);
num[i]=num[min];
strcpy(name[i],name[min]);
num[min]=templ;
strcpy(name[min|,temp2);
}
printf("排序结果如下:\n\nn);
for(i=0;i<N;i++)
(
printf(“职工号:%6d姓名:%10s\n\nn,num[i],name[i]);
)
)
voidsearch(intnum[],charname[NJ[8],intn)
(
intlow,high,mid,flag;
flag=O;
low=0;
high=N-l;
if((n<num[low])ll(n>num[highj))flag=-l;
while((low<=high)&&(flag==0))
(
mid=(low+high)/2;
if(n==num|mid])
(
flag=mid+l;
printf("M%4d号职工的名字为:%8s\n\nH,n,name[mid]);
break;
)
elseif(n<num[mid])high=mid-l;
elselow=mid+l;
)
if(flag==Ollflag==-l)printf("不存在该职工\n\n”);
8-16写一个函数将输入的十六进制换成十进制并输出
#include<iostream>
#defineNl1(X)0
voidmain()
(
intexchange(chara[]);
inti=0,flag=O,flag1=1;
charc,a[Nl];
primf("输入一个十六进制数\n\n”);
while(((c=getchar())!=\0,)&&(i<NI)&&flag1)
(
if(((c>='0,)&&(c<=,9,))ll((c>=,a,)&&(c<=,f))ll((c>='A')&&(c<=,F,)))
(
a[i++]=c;
flag=l;
)
elseif(flag==l)
(
a[i]=\0,;
printf("对应的十进制数为:%d\n\nu,exchange(a));
printf("是否继续?Y/N7\n\nM);
c=getchar();
if(c=='N'llc==,n,)flagl=0;
else
{
flag=0;
i=0;
printf("输入一个十六进制数\n\n");
)
)
)
)
intexchange(chara[])
(
inti,n=0;
for(i=0;a[i]!=\0';i++)
(
if((a[i]>=,0,)&&(a[i]<=,9'))n=n*16+a[i]-'O';
if((a[i]>=,a,)&&(a[i]<=f))n=n*16+a[i]-'a'+10;
if((a[i]>=,A,)&&(a[i]<='F,))n=n*16+a[i]-'A,+10;
)
return(n);
8-17用递归法将一个整数n转换字符串,n的位数不确定,
#include<iostream>
voidmain()
(
voidexchange(intn);
intn;
printf("输入一个整数\n\n");
scanf("%d”,&n);
primf("输出是:\n\n°);
if(n<0)
(
putchar(,-r);
n=-n;
)
exchange(n);
printf("\n\nu);
)
voidexchange(intn)
(
inti;
if((i=n/10)!=0)exchange(i);
putchar(n%10+*0');
)
8-18给出年月日计算该日是该年的第几天
#include<iostream>
voidmain()
(
intday_num(intyear,intmon,intday);
intyear,mon,day;
printf("输入年、月、日\n\n”);
scanf(',%d%d%d,1,&year,&mon,&day);
printf(n\n\n输入的日期是当年的第%d天\n\n",day_num(year,mon,day));
)
intdate[]={31,28,31,30,31,30,3L31,30,31,30,31);
intday_num(intyear,intmonjntday)
(
inti,days=O;
for(i=0;i<mon-l;i++)
(
days+=date[i];
)
days+=day;
if((year%4==0)&&((year%100)!=0)11(year%400==0))days+=1;
returndays;
第九章
9-1
#include<iostream>
#defineexchange(x,y)t=x;x=y;y=t
voidmain()
(
intx,y,t;
printf(〃输入x,y\n\n〃);
scanf(,,%d%dz,,&x,&y);
exchange(x,y);
printfC\n\n交换后x=%d,y=%d\n\n/z,x,y);
9-2
#include<iostream>
#defineacr(x,y)((x)%(y))
voidmain()
(
intx,y;
printf(〃输入x,y\n\n〃);
scanf(,,%d%dz/,&x,&y);
printf(,z\n\n余数为%d\n\n〃,acr(x,y));
)
9-3
#include<iostream>
#include<math.h>
#defines(a,b,c)((a+b+c)/2)
#definearea(a,b,c,s)sqrt(s*(s-a)*(s-b)*(s-c))
voidmain()
|
floata,b,c,s,area;
charm;
intflag=l;
while(flag==l)
(
printf("输入a,b,c\n\n,/);
scanfC%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025房屋买卖公众合同范本
- 二零二五年度设备租赁贷款抵押合同样本3篇
- 专属2024年度水稻购销协议范本版B版
- 二零二五年电梯设备租赁与改造升级合同3篇
- 码头建设爆破施工合同
- 珠宝店租赁璀璨人生租赁合同
- 烟草制品行业员工待岗协议
- 高速公路单包工施工合同
- 咨询公司消防改造协议
- 铁路桥梁维修加固粉喷桩施工合同
- 《江上渔者》课件
- 我国商业银行重组并购业务
- 光伏工程各单位归档资料
- 《美丽中国是我家》 课件
- 全面依法治国
- GB/T 17215.304-2017交流电测量设备特殊要求第4部分:经电子互感器接入的静止式电能表
- 2023年最新的乡镇街道班子成员民主生活互相批评意见2023
- 商务沟通第二版第6章管理沟通
- 培训课件-核电质保要求
- 过敏原检测方法分析
- 室外给水排水和燃气热力工程抗震设计规范
评论
0/150
提交评论