您的位置:首页 > 其它

第六周作业

2014-04-11 09:44 162 查看
实验作业
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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: