第六周作业
2014-04-11 09:44
162 查看
实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。
4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。
习题1
习题2
考虑到最大值可能有多个,所以得修改程序
习题3
习题4
习题5
习题6
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; }
相关文章推荐