第八周作业

来源:互联网 发布:iphone4s网络不可用 编辑:程序博客网 时间:2024/06/05 05:23
#include<iostream>using namespace std;long int power(int base,int exponent){long power=1;for(exponent;exponent;exponent--)power *= base;return power;}int main(){int m,n;long int y=0;cout<<"输入两个数:m,n ";cin>>m>>n;y=power(m,n);                                  //定义power函数的两个实参m,ncout<<m<<"的"<<n<<"次幂为:"<<y<<endl;return 0;}


#include<iostream>using namespace std;int prime(int);int main(){int num;cout<<"输入一个正整数:";cin>>num;if(num<=1){cout<<"输出有误!"<<endl;return 0;}if(prime(num))cout<<num<<"是素数"<<endl;elsecout<<num<<"不是素数"<<endl;return 0;}int prime(int k){int flag=1, i;for(i=2;i<k/2&&flag==1;i++)if(k%2==0)flag=0;return flag;}


#include<iostream>using namespace std;int reverse(int n);int main(){int num, result;cout<<"请输入一个十进制正整数:";cin>>num;result=reverse(num);cout<<num<<"的逆序数为"<<result<<endl;return 0;}int reverse(int n){int i,k=n;for(i=1; ;)                            //求该正整数的最高权位{k/=10;if(k==0)   break;i*=10;}if(i==1)return n;int j=0,temp=i,a[10];                      //假设该数最大是十位数for(j=0;temp>=1;j++)                   //把该数的个个位数的数用数组表示出来,且a[0]为最高权位的数{a[j]=n/temp;n=n-temp*a[j];     temp/=10;}     for(j=j-1;j>=0;j--) { n+=a[j]*i;                    //最低权位的数乘以最高权位实现逆转 i/=10; } return n; }


#include<iostream>using namespace std;int prime(int n){char deng;if(n>90&&n<=100)deng='A';else if(n>80)deng='B';else if(n>60)deng='C';else deng='D';return deng;}int main(){char result;int num;cout<<"输入一个0~100之间的整数:";cin>>num;result=prime(num);cout<<num<<"对应的等级代号字符为:"<<result<<endl;return 0;}


#include<iostream>using namespace std;float aver();int main(){                                                   float result;result=aver();cout<<"该十位学生的平均成绩为:"<<result<<endl;return 0;}float aver(){float a[10] ;                       float sum=0,aver;cout<<"请输入十个学生成绩:"<<endl;for(int i=0;i<10;i++){    cin>>a[i];sum+=a[i];}aver=sum/10;return aver;}


#include<iostream>using namespace std;void fact1();void fact2();void fact3();int main(){    fact1();cout<<endl;    fact2();cout<<endl;     fact3();cout<<endl;   return 0;}void fact1(){int i=1,j=1,f1=1;for(i=1;i<=9;i++){for(j=1;j<=9;j++){f1=i*j;cout<<i<<"*"<<j<<"="<<f1<<'\t';}cout<<endl;}}void fact2(){int i,j,f2=1;for(j=1;j<=9;j++){for(i=1;i<=j;i++){f2=i*j;cout<<i<<"*"<<j<<"="<<f2<<'\t';}cout<<endl;}}void fact3(){int i,j,f3=1;for(j=1;j<=9;j++){     for(i=j;i<=9;i++){f3=i*j;cout<<i<<"*"<<j<<"="<<f3<<'\t';}cout<<endl;}}


值调用

#include<iostream>using namespace std;int max(int,int,int);int min(int,int,int);float aver(int,int,int);int main(){int n1,n2,n3;int result1,result2;float result3;cout<<"输入三个整数:";cin>>n1>>n2>>n3;    result1=max(n1,n2,n3);result2=min(n1,n2,n3);result3=aver(n1,n2,n3);cout<<"这三个数的最大值为:"<<result1<<endl;cout<<"这三个数的最小值为:"<<result2<<endl;cout<<"这三个数的平均值为:"<<result3<<endl;return 0;}int max(int a,int b,int c){int max;max=a;if(b>max)max=b;if(c>max)max=c;return max;}int min(int a,int b,int c){int min;min=a;if(b<min)min=b;if(c<min)min=c;return min;}float aver(int a,int b, int c){float aver=0.0;aver=(a+b+c)/3.0;}


引用调用

#include<iostream>using namespace std;int max(int&,int&,int&);int min(int&,int&,int&);float aver(int&,int&,int&);int main(){int n1,n2,n3;int result1,result2;float result3;cout<<"输入三个整数:";cin>>n1>>n2>>n3;    result1=max(n1,n2,n3);result2=min(n1,n2,n3);result3=aver(n1,n2,n3);cout<<"这三个数的最大值为:"<<result1<<endl;cout<<"这三个数的最小值为:"<<result2<<endl;cout<<"这三个数的平均值为:"<<result3<<endl;return 0;}int max(int& a,int& b,int& c){int max;max=a;if(b>max)max=b;if(c>max)max=c;return max;}int min(int& a,int& b,int& c){int min;min=a;if(b<min)min=b;if(c<min)min=c;return min;}float aver(int& a,int& b, int& c){float aver=0.0;aver=(a+b+c)/3.0;return aver;}


全局变量·

#include<iostream>using namespace std;int n1,n2,n3;int max();int min();float aver();int main(){int result1,result2;float result3;cout<<"输入三个整数:";cin>>n1>>n2>>n3;    result1=max();result2=min();result3=aver();cout<<"这三个数的最大值为:"<<result1<<endl;cout<<"这三个数的最小值为:"<<result2<<endl;cout<<"这三个数的平均值为:"<<result3<<endl;return 0;}int max(){int max;max=n1;if(n2>max)max=n2;if(n3>max)max=n3;return max;}int min(){int min;min=n1;if(n2<min)min=n2;if(n3<min)min=n3;return min;}float aver(){float aver=0.0;aver=(n1+n2+n3)/3.0;return aver;}

老师,下题求矩阵的乘积的算法,不知道错哪了,结果很奇怪。


#include<iostream>#include<iomanip>using namespace std;int fun1();int fun2();int main(){int i,j;int m[4][5],n[5][3];    int p[4][3];m[4][5]=fun1();n[5][3]=fun2();for(i=0;i<=3;i++)for(j=0;j<=4;j++){p[i][j]+=m[i][j]*n[j][i];p[i][j+1]+=m[i][j]*n[j][i+1];            p[i][j+2]+=m[i][j]*n[j][i+2];}cout<<"a[4][5]*b[5][3]="<<endl;for(i=0;i<=3;i++)for(j=0;j<=2;j++){cout<<'\t'<<p[i][j];if(j==2)cout<<endl;}return 0;}int fun1(){int i,j,a[4][5];cout<<"a[4][5]的矩阵为:"<<endl;for(i=0;i<=3;i++)for(j=0;j<=4;j++){a[i][j]=i+j;cout<<setw(2)<<a[i][j];if(j==4)cout<<endl;}return a[i][j];}int fun2(){int i,j,b[5][3];cout<<"b[5][3]矩阵为:"<<endl;       for(i=0;i<=4;i++)   for(j=0;j<=2;j++)   {   b[i][j]=2*i;cout<<setw(2)<<b[i][j];if(j==2)cout<<endl;   }   return b[i][j];}
#include<iostream>using namespace std;int fact(int k){int fact=1;                   //求n的阶层for(k;k>=1;k--)fact*=k;return fact;}int sum(int n){int s=0;                       //求1!+2!+3!+...+n!for(n;n>=1;n--)  s +=fact(n);return s;}int main(){int n ,result;cout<<"输入一个正整数n: "<<endl;cin>>n;result=sum(n);cout<<"1!+2!+3!+...+n!= "<<result<<endl;return 0;}



#include<iostream>#include<cmath>using namespace std;int prime(int);int main(){int n,result;cout<<"输入一个十六进制的整数:"<<endl;cin>>n;result=prime(n);cout<<"十六进制数"<<n<<"转化为十进制数为"<<result<<endl;return 0;}int prime(int n){int i=1,m=n;for(i=1;m!=0;i++)                 //求出该十六进制数的最高权位m/=10;int j,p,s=0;for(j=0;j<i;j++){p=n%10;                      //求出该十六进制数的各个位上的数字    n/=10;                       s +=pow(16,j)*p;                //十六进制转化为十进制数}return s;}



0 0