习题1
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[5];
int i,j,t;
cout<<"输入5个数值"<<endl;
for(i=0;i<5;i++)
cin>>a[i];
cout<<endl;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
cout<<"数值从大到小的排列是"<<endl;
for(i=4;i>=0;i--)
cout<<a[i]<<" ";
cout<<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];
x=i;
y=j;
}
cout<<"输出二维数组a[2][3]的最大值"<<endl;
cout<<"a["<<i<<"]["<<j<<"]="<<max<<endl;
return 0;
}
习题3
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i;
int j=0;
int f[20]={1,1};
for(i=2;i<20;i++)
{
f[i]=f[i-2]+f[i-1];
if(f[i]>100&&f[i]<999)
j+=1;
}
for(i=0;i<20;i++)
{
if(i%4==0)
cout<<endl;
cout<<setw(12)<<f[i];
}
cout<<endl<<"3位数有"<<j<<"个"<<endl;
cout<<"第16项是"<<f[15]<<endl;
return 0;
}
习题4
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
char str[100];
cout<<"输入一个字符串";
cin.getline(str,50);
int upc=0,lowc=0,num=0,space=0,other=0;
for(int i=0;i<str[i];i++)
{
if(str[i]>='A'&&str[i]<='Z')
upc++;
if(str[i]>='a'&&str[i]<='z')
lowc++;
if(str[i]>='0'&&str[i]<='9')
num++;
if(str[i]==' ')
space++;
else
other++;
}
cout<<"大写字符有"<<upc<<"个"<<endl;
cout<<"小写字符有"<<lowc<<"个"<<endl;
cout<<"数字字符有"<<num<<"个"<<endl;
cout<<"空格有"<<space<<"个"<<endl;
cout<<"其它字符有"<<other<<"个"<<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;
}
实验3
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[4][5],b[5][3],c[4][3];
int i,j,k,sun=0;
cout<<"输入4行5列的二维数组的元素值"<<endl;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
cout<<"输入5行3列的二维数组的元素值"<<endl;
for(j=0;j<5;j++)
for(k=0;k<3;k++)
{
cout<<"b["<<j<<"]["<<k<<"]=";
cin>>b[j][k];
}
for(i=0;i<4;i++)
for(j=0;j<5;j++)
for(k=0;k<3;k++)
{
c[i][k]=a[i][j]*b[j][k];
}
cout<<"两矩阵积,得到的矩阵c[4][3]为"<<endl;
for(i=0;i<4;i++)
{
cout<<endl;
for(k=0;k<3;k++)
cout<<setw(9)<<c[i][k];
}
cout<<endl;
return 0;
}
实验4
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int N;
int i,j,k,a[100][100];
cout<<"输入一个数:";
cin>>N;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=0; //初始值为零
j=N/2;
a[0][j]=1; // 确定1的位置
for(k=2;k<=N*N;k++)
{
i--; // 向上移
j++; //向右移
if(i<0)
i=N-1; // 行出界回到n-1
else if(j>N-1)
j=0; // 列出回到0
if(a[i][j]==0)
a[i][j]=k; // 按规律顺序确定数值位置,有0才赋值
else
{
i=(i+2)%N;
j=(j-1+N)%N; //规律式子是网上找的,不理解啊
a[i][j]=k; // 已有数字时数字的位置
}
}
cout<<endl;
for(i=0;i<N;i++)
{
cout<<"\t";
for(j=0;j<N;j++)
cout<<setw(4)<<a[i][j]; // setw(4)保证4位输出
cout<<"\n\n";
}
return 0;
}