您的位置:首页 > 编程语言 > C语言/C++

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

2014-04-13 20:18 323 查看
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 50

int main()
{
char s
;
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++;
else
m++;
}
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 50

int main()
{
char a
,b
;
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 50

int main()
{
char a
,b
;
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的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: