第四单元
//1. 设计一个程序,要求输入三个整数,能求出其中的最大数并输出。程序中必须用函数实现求两数中大数的功能 #include
return a>b?a:b;
void main(void)
int a,b,c,maxnumber;
cout<<\请输入三个整数: \cin>>a>>b>>c;
maxnumber=max(a,b);
maxnumber=max(maxnumber,c);
cout<
}
//2. 设计一个程序,求出100~200之间的所有素数,要求每行输出5个素数。判断一个整数是否为素数用一个函数来实现。 #include
return 0; return 1;
}
void main(void) {
int k=0;
for(int i=100;i<=200;i++)
if(prime(i)) { }
cout<
cout< } //3.回文数是指其各位数字左右对称的整数,例如12321是回文数。定义一个判断回文数的函数,并打印1000~2000之间的所有回文数。 #include { } int s=0; int i=x; while(i) { s=s*10+i; i=i/10; } if(s==x) return 1; else return 0; void main(void) { int k=0; for(int i=1000;i<=2000;i++) if(fun(i)) { cout< if(k%5==0) cout< } } //4.用函数实现求两正整数的最大公约数的功能,并在主函数中调用该函数求出两正整数的最小公倍数。 #include for(int i=a;i>=1;i--) if(a%i==0&&b%i==0) return i; return i; } void main(void) { int a,b,t; cout<<\请输入两个正整数: \ cin>>a>>b; t=gys(a,b); cout< } //5. 用递归函数实现Hermite多项式求值。当x>1时,Hermite多项式定义为输入实数x和整数n后,求出Hermite多项式前n项的值 #include double hermite(double x,int n) { double y; if(n==0) y=1; else if(n==1) y=2*x; else y=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2); return y; } void main() { double x,y; int n; cout<<\请输入n和x: \cin>>n>>x; y=hermite(x,n); cout<<\ } //6.分别设计两个函数,一个实现整数的正序输出,另一个则实现反序输出。如输人一个整数3456,则输出3456和6543。 //算法提示:重复除以10求余,直到商为0为止。如3456%10的余数为6,商为345;345%10的余数为5,商为34; //34%10的余数为4,商为3;3%10的余数为3,商为0,至此结束。先输出余数,后递归,则为反序输出; //先递归,后输出余数,则为正序输出。 #include if(n==0) return ; else fun1(n/10); cout< void fun2(int n) if(n==0) else { cout< } } void main() { int n; cout<<\请输入n: \ } cin>>n; fun1(n); cout< 第五单元 //2已知三角形的三条边a, b, c,则三角形的面积为 #include #define s(a,b,c) ((a+b+c)/2) #define area(a,b,c) s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c) void main( ) { } double a,b,c; double ss; cout<<\请输入三角形的三边: \cin>>a>>b>>c; ss=area(a,b,c); ss=sqrt(ss); cout<<\三角形的面积为: \ 第六单元 //1输出以下的杨辉三角形(要求输出8行) #include int a[10][10]; int i,j; for(i=0;i<8;i++) { a[i][0]=1; a[i][i]=1; } for(i=2;i<8;i++) for(j=1;j { a[i][j]=a[i-1][j-1]+a[i-1][j]; } for(i=0;i<8;i++) { } for(j=0;j<=i;j++) cout< } //2求一个4×4矩阵两对角线元素之和。 #include int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) cout< cout< for(i=0;i<4;i++) s=s+a[i][i]+a[i][3-i]; cout<<\} //3找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。 #include int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,j,k,mini,maxj,flag=0,max; for(i=0;i<4;i++) { max=a[i][0]; maxj=0; for(j=1;j<4;j++) { if(max max=a[i][j]; maxj=j;