北京科技大学C++ 实验报告.doc
1、 编程实现将10个整数升序排列程序代码:#include<iostream>using namespace std;int main()int i,j,t,a10,k;cout<<"输入10个数: "for(i=0;i<10;i+)cin>>ai;for(i=0;i<9;i+)k=i;for(j=i+1;j<10;j+)if(ak>aj) k=j;if(k!=i)t=ai;ai=ak;ak=t;cout<<"输出升序排列的结果: "for(i=0;i<10;i+)cout<<ai<<" "cout<<endl;return 0;运行结果:2、 若干个数据首尾相连,构成一个圆环,找到连续的4个数之和最大的一段程序代码:#include<iostream>using namespace std;int main()int aa,i,n=0,j,max=1,s=0;int a20;cout<<"输入圆环数据:"cin>>aa;while(aa!=-1)an+=aa;cin>>aa;for(i=0;i<n;i+)s=ai+a(i+1)%n+a(i+2)%n+a(i+3)%n;if(s>max)max=s;j=i;cout<<"输出圆环数据:"for(i=0;i<n;i+)cout<<ai<<" "cout<<"n从第"<<j+1<<"个数开始连续四个数据和最大,为:"<<max<<endl;return 0;运行结果:3、 编程实现一个2*3矩阵A到3*2的矩阵B转置程序代码:#include<iostream>using namespace std;int main()int a23=1,2,3,4,5,6;int i,j,b32;cout<<"原始矩阵:"<<endl;for(i=0;i<2;i+)for(j=0;j<3;j+)cout<<" "<<aij;cout<<endl;for(i=0;i<3;i+)for(j=0;j<2;j+)bij=aji;cout<<"转置矩阵:"<<endl;for(i=0;i<3;i+)for(j=0;j<2;j+)cout<<" "<<bij;cout<<endl;return 0;运行结果:4、 输入一个字符串,分别统计其中每个数字、空格、字母以及其他字符出现的次数。程序代码:#include<iostream>using namespace std;int main()char s80;int i=0,sp=0,oth=0,lett=0;int dig10=0;cout<<"输入字符串:"<<endl;gets(s);cout<<"输出字符串:"<<endl;for(i=0;si;i+)cout<<si;cout<<endl;for(i=0;si!='0'i+)if(si>='0'&&si<='9')digsi-'0'+;else if(si=' ')sp+;else if(si>='A'&&si<='Z'|si>='a'&&si<='z')lett+;else oth+;for(i=0;i<10;i+)cout<<i<<":"<<digi<<","cout<<"n空格:"<<sp<<",英文字符:"<<lett<<",其它字符:"<<oth<<endl;return 0;运行结果:1、程序代码:#include<iostream>using namespace std;int main()int a26,i,j,k,b26,c26;char s100,ss26;for(j=0;j<26;j+)aj=0;bj=0;cout<<"输入字符串:" gets(s);for(i=0;(si>='a'&&si<='z')|(si>='A'&&si<='Z');i+)if(si>='a'&&si<='z')a(int)si-97+;elseb(int)si-65+;for(j=0;j<26;j+)cj=aj+bj;for(k=0;k<26;k+)ssk=97+k;for(i=0;i<26;i+)cout<<ssi<<":"<<ci<<' ' if(i=9|i=19)cout<<endl; cout<<endl;运行结果:2、 程序代码:#include<iostream>using namespace std;int main()int a8,i=0,max,min,m=0,n=0,j=0;cout<<"请输入8个数:"<<endl;for(i=0;i<8;i+)cin>>ai;max=min=a0;for(i=0;i<8;i+)if(ai>max)max=ai;m=i;for(j=0;j<8;j+)if(aj<min)min=aj;n=j;cout<<"最大值为:a"<<m<<"="<<max<<endl;cout<<"最小值为:a"<<n<<"="<<min<<endl;return 0;运行结果:3、 程序代码:#include<iostream>using namespace std;int main() int m,i,j;int a100100;cout<<"输入行列数:"<<endl;cin>>m;cout<<"输入数组数值:"<<endl; for(i=0;i<m;i+)for(j=0;j<=i;j+)cin>>aij;for(i=0;i<m;i+)for(j=i+1;j<m;j+)aij=0;cout<<"初始化的二维数组为:"<<endl;for(i=0;i<m;i+)for(j=0;j<m;j+)cout<<aij<<" " cout<<endl;return 0;运行结果:4、 程序代码: #include<stdio.h>#include<stdlib.h> void FindKing_pointer(int,int,int*);void Initialize(int,int*);int main()int m,n,*ptr;printf("输入猴子数与出局时报的数n");scanf("%d %d",&n,&m);while(n<m)printf("输入数据有误,请重新输入!n");printf("输入猴子数与出局时报的数n");scanf("%d %d",&n,&m);ptr=(int *)calloc(n,sizeof(int);Initialize(n,ptr);FindKing_pointer(m,n,ptr);free(ptr);return 0;void Initialize(int n,int *ptr)int i;for(i=0;i<n;i+)ptri=i+1;void FindKing_pointer(int m,int n,int *ptr)int i,count,*ptr2;count=n-1;ptr2=ptr; for(i=0;count!=0;ptr2+)if(ptr2=ptr+n)ptr2=ptr;if(*ptr2!=0)i+;if(i=m)*ptr2=i=0;count-; for(ptr2=ptr;ptr2+)if(*ptr2!=0)printf("第%d个猴子是大王n",*ptr2);break;运行结果: