第六周作业

来源:互联网 发布:80后和90后的区别 知乎 编辑:程序博客网 时间:2024/05/01 02:52
     实验作业

1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;

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

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

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

 习题1

/*****************************功能:数据顺序排列 ******************************/#include<iostream>using namespace std;int main(){int a[5],i,j,k;cout<<"输入五位数:"<<endl;for(i=0;i<5;i++)cin>>a[i];cout<<"将其原来顺序输出:"<<endl;for(i=0;i<5;i++)cout<<a[i]<<"  ";cout<<endl;cout<<"按从大到小顺序输出:"<<endl;for(i=1;i<5;i++)for(j=4;j>i-1;j--){if(a[j]>a[j-1]){k=a[j];a[j]=a[j-1];a[j-1]=k;}}for(i=0;i<5;i++)cout<<a[i]<<"  ";return 0;}


 

 习题2

/***习题2:输入数组,求出最大值及其下标***/#include<iostream>#include<iomanip>using namespace std;int main(){int a[2][3],i,j,max,x,y;cout<<"请输入一个二维数组a[2][3]"<<endl;for(i=0;i<2;i++)for(j=0;j<3;j++)cin>>a[i][j];cout<<"输出一个二维数组a[2][3]"<<endl;         for(i=0;i<2;i++){for(j=0;j<3;j++)    cout<<setw(4)<<a[i][j];cout<<endl;}max=a[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++)if(a[i][j]>=max){max=a[i][j];x=i;y=j;}cout<<"输出二维数组a[2][3]的最大值"<<endl;cout<<"a["<<i<<"]["<<j<<"]="<<max<<endl;return 0;}


 

考虑到最大值可能有多个,所以得修改程序

/***习题2:输入数组,求出最大值及其下标***/#include<iostream>#include<iomanip>using namespace std;int main(){int a[2][3],i,j,max,x,y;cout<<"请输入一个二维数组a[2][3]"<<endl;for(i=0;i<2;i++)for(j=0;j<3;j++)cin>>a[i][j];cout<<"输出一个二维数组a[2][3]"<<endl;         for(i=0;i<2;i++){for(j=0;j<3;j++)    cout<<setw(4)<<a[i][j];cout<<endl;}max=a[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++)if(a[i][j]>=max){max=a[i][j];}cout<<"输出二维数组a[2][3]的最大值"<<endl;for(i=0;i<2;i++)for(j=0;j<3;j++){if(a[i][j]==max){cout<<"a["<<i<<"]["<<j<<"]=";}}cout<<max<<endl;return 0;}



习题3

#include<iostream>using namespace std;int main(){int a[20],a1=1,a2=1,int i,char j=0;a[0]=a1;a[1]=a2;for(i=0;i<18;i++){a[i+2]=a[i]+a[i+1];} cout<<"输出Fibonacci数列的前20位:"<<endl;for(i=0;i<20;i++){cout<<a[i]<<' ';if(a[i]>=100&&a[i]<1000){j++;}}cout<<endl;cout<<"经统计,一共有"<<j<<"个3位数"<<endl;cout<<"数列中的第16项数据为"<<a[15]<<endl;return 0;}




 习题4

#include<iostream>using namespace std;int main(){char a[100],i=0,k;int f=0,b=0,c=0,d=0,e=0;cout<<"请输入一行文字:"<<endl;cin.get(a,100);i=strlen(a);for(k=0;k<i;k++){if(a[k]>=65&&a[k]<=90){f++;}else if(a[k]>=97&&a[k]<=122){b++;}else if(a[k]>=48&&a[k]<=57){c++;}else if(a[k]==32){d++;}else{e++;}}cout<<"大写字母有"<<f<<"个"<<endl;cout<<"小写字母有"<<b<<"个"<<endl;cout<<"数字有"<<c<<"个"<<endl;cout<<"空格有"<<d<<"个"<<endl;cout<<"其他字符"<<e<<"个"<<endl;return 0;}


 

习题5

#include<iostream>using namespace std;int main(){char a[100],i=0,k;cout<<"请输入一个字符串:";cin.get(a,100);i=strlen(a);cout<<"输出反向字符串:";for(k=i-1;k>=0;k--)cout<<a[k];cout<<endl;return 0;}



 习题6

#include<iostream>using namespace std;int main(){char a[100],i=0,k;cout<<"请输入一个字符串:";cin.get(a,100);i=strlen(a);cout<<"输出改动后字符串:";for(k=0;k<i;k++){if(a[k]<48||a[k]>57)cout<<a[k];}cout<<endl;return 0;}


 

 

/***************************功能:求两矩阵乘积****************************/#include<iostream>using namespace std;int main(){int a[4][5],b[5][3],c[4][3]={0},i,j,k,t;cout<<"please intput the number of a[4][5]"<<endl;for(i=0;i<4;i++)for(j=0;j<5;j++)cin>>a[i][j];cout<<"please intput the number of b[5][3]"<<endl;for(i=0;i<5;i++)for(j=0;j<3;j++)cin>>b[i][j];cout<<"output the number of a[4][5]"<<endl;    for(i=0;i<4;i++){for(j=0;j<5;j++)cout<<a[i][j]<<'\t';cout<<endl<<endl;}cout<<"output the number of b[5][3]"<<endl;    for(i=0;i<5;i++){for(j=0;j<3;j++)cout<<b[i][j]<<'\t';    cout<<endl<<endl;}cout<<"c[4][3]=a[4][5]*b[5][3],output the c[4][3]"<<endl;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=0;k<5;k++){t=a[i][k]*b[k][j];c[i][j]+=t;}cout<<"output the c[i][j]"<<endl; for(i=0;i<4;i++){for(j=0;j<3;j++)cout<<c[i][j]<<'\t';cout<<endl<<endl;}return 0;}



 

 

/***************************    功能:输出魔方    ***************************/#include<iostream>#include<iomanip>using namespace std;int main(){int n,i,j,k,a[100][100];int temp=1;cout<<"请输入魔方的阶数:(必须是奇数)"<<endl;cin>>n;while(n%1||!(n%2)){cout<<"很遗憾,只能是奇数,请重新输入:";cin>>n;}for(i=0;i<n;i++)for(j=0;j<n;j++)a[i][j]=0;cout<<"输出魔方:"<<endl;j=0;i=n/2;a[i][j]=temp;for(k=0;k<n*n;k++){i=i-1;if(i<0){i=n-1;}j=j-1;if(j<0){j=n-1;}if(a[i][j]!=0){j=j+1;if(j>=n){j=0;}i=i+1;if(i>=n){i=0;}j=j+1;            if(i>=n){i=0;}}temp=temp+1;a[i][j]=temp;}for(i=0;i<n;i++){for(j=0;j<n;j++){cout<<setw(4)<<a[i][j];}cout<<endl;}return 0;}



 

0 0
原创粉丝点击