第六周C++作业(part 2)

来源:互联网 发布:全员网络闯关赛 题库 编辑:程序博客网 时间:2024/05/17 06:00

2.编程实现课本每一个编程习题。

/**********从键盘上输入5个数,然后将它们按照从大到小的顺序输出********/#include<iostream>using namespace std;int main(){double a[5],b;int i,j,k,l;cout<<"请任意输入5个数"<<endl;for(i=0;i<5;i++)cin>>a[i];for(j=0;j<5;j++){for(k=j;k<5;k++)if(a[k]>a[j])b=a[k],a[k]=a[j],a[j]=b;}cout<<"5个数从大到小排列依次为"<<":"<<endl;for(l=0;l<5;l++){cout<<a[l]<<endl;}return 0;}

输出结果:

/**********从键盘上为数组a[2][3]输入任意整数值,显示该数组,找出该数组的最大元素及其下标********/#include<iostream>using namespace std;int main(){double a[2][3];int max,num1,num2,i,j;cout<<"请任意输入6个数为数组赋值"<<endl;for(i=0;i<2;i++)for(j=0;j<3;j++)cin>>a[i][j];    cout<<"该数组所含的值为: "<<endl;for(i=0;i<2;i++){for(j=0;j<3;j++)cout<<a[i][j]<<"  ";cout<<endl;}max=a[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++){if(max<a[i][j])max=a[i][j],num1=i,num2=j;}cout<<"数组中最大的值为: "<<max<<endl;cout<<"它的下标值分别为i="<<num1<<" j="<<num2<<endl;return 0;}


/**********编写程序,统计Fibonacci数列前20个数中有多少个3位数,并输出数列中的第16项数据。****************/#include<iostream>#include<iomanip>using namespace std;int main(){int i,j=0;int f[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];/*********以上为Fibonacci数列的前20个数**********/for(i=0;i<20;i++){if(f[i]/100!=0&&f[i]/1000==0)j++;}cout<<"Fibonacci数列前20个数中有"<<j<<"个3位数"<<endl;cout<<"f[16]="<<f[15]<<endl;return 0;}


 

/**********输入一行文字,统计其中大写字母、小写字母空格、数字及其他字符的个数。********/#include<iostream>using namespace std;#define N 50int main(){char s[N];int i=0,j=0,k=0,l=0,m=0,p;//i统计大写字母,j统计小写字母,k统计空格,l统计数字,m统计其他字符cout<<"请任意输入一行小于50个字符的字符串"<<endl;cin.get(s,N);for(p=0;s[p]!='\0';p++){if(s[p]>='A'&&s[p]<='Z')i++;else if(s[p]>='a'&&s[p]<='z')j++;else if(s[p]==' ')k++;else if(s[p]>='0'&&s[p]<='9')l++;elsem++;}cout<<"大写字母个数为:"<<i<<endl;cout<<"小写字母个数为:"<<j<<endl;cout<<"空格个数为:"<<k<<endl;cout<<"数字个数为:"<<l<<endl;cout<<"其它字符个数为:"<<m<<endl;return 0;}

输出结果:

/**********输入一字符串,反向输出每一个字符,并求此字符串的长度。****************/#include<iostream>#include<string.h>using namespace std;#define N 50int main(){char a[N],b[N];int i,j,k,l;cout<<"请任意输入一个小于50个字符的字符串"<<endl;cin.get(a,N);i=strlen(a);//求a数组的长度k=i;for(j=0;a[j]!='\0';j++)//将a数组的值全部传递给b数组b[j]=a[j];b[j]='\0';for(j=0;j<=i;j++)//将a数组的值反向赋值a[j]=b[k-1],k--;a[j]='\0';cout<<"此字符串反向输出为:";for(l=0;l<=i;l++)//输出a数组的值cout<<a[l];cout<<endl;cout<<"此字符串的长度为:"<<i<<endl;//输出字符串的长度return 0;}



/**********输入一个字符串,将其中的所有数字删除,并输出改动后的字符串及其长度,****************/#include<iostream>#include<string.h>using namespace std;#define N 50int main(){char a[N],b[N];int i,j=0,k=0,l;cout<<"请任意输入一个小于50个字符的字符串"<<endl;cin.get(a,N);i=strlen(a);//求字符串去掉数字前的长度while(a[j]!='\0'){if(a[j]>='0'&&a[j]<='9')j++;else{b[k]=a[j];k++,j++;}}b[k]='\0';cout<<"去掉数字后的字符串为:";for(l=0;b[l]!='\0';l++)cout<<b[l];cout<<endl;i=strlen(b);        ////求字符串去掉数字后的长度cout<<"去掉数字后的字符串长度为:"<<i<<endl;return 0;}



3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。

#include<iostream>using namespace std;int main(){int i, j,l;int a[4][5],b[5][3],c[4][3];  //a行b列矩阵乘b行c列矩阵会得到a行c列矩阵。cout<<"请给数组a[4][5]赋值"<<endl;for(i=0;i<4;i++)for(j=0;j<5;j++)cin>>a[i][j];cout<<"请给数组b[5][3]赋值"<<endl;for(i=0;i<5;i++)for(j=0;j<3;j++)cin>>b[i][j];/**************以上为a,b两个数组赋值***********/cout<<"数组a[4][5]的值为:"<<endl;for(i=0;i<4;i++){for(j=0;j<5;j++)cout<<a[i][j]<<'\t';cout<<endl;}cout<<"数组b[5][3]的值为:"<<endl;for(i=0;i<5;i++){for(j=0;j<3;j++)cout<<b[i][j]<<'\t';cout<<endl;}/**************以上为输出a,b两个数组的值***********/for(i=0;i<4;i++){for(j=0;j<3;j++){c[i][j]=0;for(l=0;l<5;l++){c[i][j]+=a[i][l]*b[l][j];}}}/**************求c[4][3]的值**********************/cout<<"a[4][5]*b[5][3]="<<endl;for(i=0;i<4;i++){for(j=0;j<3;j++)cout<<c[i][j]<<'\t';cout<<endl;}return 0;}

4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。


0 0
原创粉丝点击