习题1
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[5];
int i,j,t;
cout<<"please input 5 numbers:\n";
for(i=0;i<5;i++)
cin>>a[i]; //输入数组元素
cout<<"the numbers are:";
for(i=0;i<5;i++)
cout<<setw(4)<<a[i];
cout<<endl;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
cout<<"the sorted numbers are:";
for(i=0;i<5;i++)
cout<<setw(4)<<a[i]; //输出数组元素
cout<<endl;
return 0;
}
习题2
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i, j, t, n, m;
int a[2][3];
cout<<"请输入二维数组的元素值:"<<endl;
for(i = 0;i<2;i++)
{
for(j = 0;j<3;j++)
{
cout<<"a"<<"["<<i<<"]"<<"["<<j<<"] = ";
cin>>a[i][j];
}
}
cout<<"该二维数组为:"<<endl;
t = a[0][0];
for(i = 0;i<2;i++)
{
for(j = 0;j<3;j++)
{
cout<<setw(4)<<a[i][j];
if(a[i][j]>t)
{
t = a[i][j];
n = i, m = j;
}
}
cout<<endl;
}
cout<<"该数组中最大的元素值为:"<<"a"<<"["<<n<<"]"<<"["<<m<<"] = "<<t<<endl;
return 0;
}
习题3
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,j;
j=0;
int f[20]={1,1};
cout<<"Fibonacci数列前20项为:"<<endl;
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%4==0)
cout<<endl;
cout<<setw(12)<<f[i];
}
cout<<endl;
for(i=0;i<20;i++)
{
if(f[i]>=100&&f[i]<=999)
j++;
}
cout<<"Fibonacci数列前二十项的三位数个数为:"<<j<<endl;
cout<<"第16项为:"<<f[15]<<endl;
return 0;
}
习题4
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
char a[100];
int i,q=0,w=0,e=0,r=0,t=0;
cout<<"请输入一行少于100的字符串:"<<endl;
cin.get(a,100);
for(i=0;i<100;i++)
{
if(a[i]>='a'&&a[i]<='z')
q++;
else if
(a[i]>='0'&&a[i]<='9') //因为a被定义为char,,所以应该写成'0' '9'
w++;
else if
(a[i]>='A'&&a[i]<='Z')
e++;
else if
(a[i]==' ')
r++;
else if
(a[i]=='\0')
t=strlen(a)-(q+w+e+r);
}
cout<<"数字个数为:"<<w<<endl;
cout<<"大写字母个数为:"<<e<<endl;
cout<<"空格个数为:"<<r<<endl;
cout<<"其他字符个数为:"<<t<<endl;
return 0;
}
习题5
#include <iostream>
using namespace std;
int main()
{
int i;
char str[100];
cout<<"请输入字符串:";
cin.get(str,100);
cout<<"字符串"<<str<<"的反向字符串为:";
for(i = strlen(str)-1;i>=0;i--)
{
cout<<str[i];
}
cout<<endl;
cout<<"字符串的长度为:"<<strlen(str)<<endl;
return 0;
}
习题6
#include <iostream>
using namespace std;
int main()
{
int i, j =0;
char str1[100], str2[100];
cout<<"请输入字符串:";
cin.get(str1,100);
for(i = 0;i<100&&str1[i]!='\0';i++)
{
if(!(str1[i]>='0'&&str1[i]<='9'))
{
str2[j] = str1[i];
j++;
}
}
str2[j+1] = '\0';
cout<<"原字符串:"<<str1<<endl;
cout<<"改动后的字符串:"<<str2<<endl;
cout<<"改动后字符串的长度:"<<j<<endl;
return 0;
}
矩阵
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a[4][5], b[5][3], c[4][3];
int i, j, k, t = 0;
cout<<"请输入A矩阵:"<<endl;
for(i = 0;i<4;i++)
{
for(j = 0;j<5;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"] = ";
cin>>a[i][j];
}
}
cout<<"请输入B矩阵:"<<endl;
for(i = 0;i<5;i++)
{
for(j = 0;j<3;j++)
{
cout<<"b["<<i<<"]"<<"["<<j<<"] = ";
cin>>b[i][j];
}
}
cout<<"A矩阵是:"<<endl;
for(i = 0;i<4;i++)
{
for(j = 0;j<5;j++)
{
cout<<setw(4)<<a[i][j];
}
cout<<endl;
}
cout<<"B矩阵是:"<<endl;
for(i = 0;i<5;i++)
{
for(j = 0;j<3;j++)
{
cout<<setw(4)<<b[i][j];
}
cout<<endl;
}
for(i = 0;i<5;i++)
for(j = 0;j<5;j++)
{
for(k = 0;k<5;k++)
{
t += a[i][k] * b[k][j];
}
c[i][j] = t;
}
cout<<"A矩阵与B矩阵的积为:"<<endl;
for(i = 0;i<4;i++)
{
for(j = 0;j<3;j++)
{
cout<<setw(4)<<c[i][j];
}
cout<<endl;
}
return 0;
}
魔方阵
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i,k,c,N;
int m[50][50]={0};
cout<<"请输入魔方阵的阶数(范围在1~49):";
cin>>N;
i=0; k=N/2;
for(c=1;c<=N*N;c++)
{
if(m[i][k]!=0)
{
i++;
if(i>N-1)i=0;
i++;
if(i>N-1)i=0;
k--;
if(k<0)
k=N-1;
}
m[i][k]=c;
i--, k++;
if(i<0)i=N-1;
if(k>N-1)k=0;
}
cout<<N<<" 阶魔方阵"<<endl<<endl;
for(i=0;i<N;i++)
{
for(k=0;k<N;k++)
cout<<setw(4)<<m[i][k];
cout<<endl;
}
return 0;
}