1.找出100~200间的全部素数
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i,j,a=0;//i,j是循环变量,a控制输出
bool prime;//判断是否是素数
for(i=101;i<=200;i=i+2)
{
prime=true;
for(j=2;j<=sqrt(i);j++)
{
if(i%j == 0)
{
prime=false;
break;//这里需要注意break和continue的区别
}
}
if(prime)
{
cout<<i<<" ";
a++;
}
if(a%10 == 0) cout<<endl;
}
return 0;
}
2.译密码:可以按一下规律将电文变成密码:将字母A变成字母E,a变成e,既变成其后的第四个字母。
#include<iostream>
using namespace std;
int main()
{
char c;
while((c=getchar()) != '\n')//注意c=getchar()要用括号括起来
{
if((c>='a' && c<='z') || (c>='A' && c<='Z'))
{
c=c+4;
if((c>'Z' && c<='Z'+4) || c>'z')//ASCII码可以查出z+4已经达到上限因此可以不考虑
{
c=c-26;
}
}
cout<<c;
}
cout<<endl;
return 0;
}
3.输出1~5的阶乘值(static的应用)
#include<iostream>
using namespace std;
int main()
{
int factorial(int i);
int i;
for(i=1;i<=5;i++)
{
cout<<i<<"!="<<factorial(i)<<endl;
}
return 0;
}
int factorial(int i)
{
static int f=1;
f=f*i;
return f;
}
4.编写程序,用起泡法对十个数进行排序(由小到大)
#include<iostream>
#include<iomanip>
#define N 10
using namespace std;
int main()
{
void sort(int a[]);//函数声明
int a[N];
//输入
cout<<"Please input ten integer numbers:";
for(int i=0;i<N;i++)
{
cin>>a[i];
}
cout<<endl;
sort(a);
//输出
cout<<"The date is:";
for(int i=0;i<N;i++)
{
cout<<setw(5)<<a[i];
}
cout<<endl;
return 0;
}
void sort(int a[])
{
for(int i=0;i<N-1;i++)
{
for(int j=0;j<N-i-1;j++)//这里需要注意下标
{
if(a[j]>a[j+1])
{
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
6.将一个2x3的二维数组a的han行和列互换,存到一个3x2的二维数组b中
#include<iostream>
using namespace std;
int main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2];
for(int i=0;i<3;i++)
{
for(int j=0;j<2;j++)
{
b[i][j]=a[j][i];
cout<<b[i][j]<<" ";
}
cout<<endl;
}
}
7.有一个3x4的矩阵,要求编程求出其中最大的元素的值,以及其中所在的行号和列号
#include<iostream>
#define N 3
#define M 4
using namespace std;
void input(int a[N][M])
{
cout<<"Please input the array:"<<endl;
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
cin>>a[i][j];
}
}
}
int main()
{
int a[N][M];
input(a);
int max=a[0][0];
int max_i,max_j;
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
if(max<a[i][j])
{
max=a[i][j];
max_i=i+1;
max_j=j+1;
}
}
}
cout<<"max="<<max<<" "<<"max_i="<<max_i<<" "<<"max_j="<<max_j<<endl;
}
8.用选择法对10个整数进行由小到大排序
#include<iostream>
#include<iomanip>
#define N 10
using namespace std;
int main()
{
void sort(int a[]);//函数声明
int a[N];
//输入
cout<<"Please input ten integer numbers:";
for(int i=0;i<N;i++)
{
cin>>a[i];
}
cout<<endl;
sort(a);
//输出
cout<<"The date is:";
for(int i=0;i<N;i++)
{
cout<<setw(5)<<a[i];
}
cout<<endl;
return 0;
}
void sort(int a[])
{
for(int i=0;i<N-1;i++)
{
for(int j=i;j<N;j++)//这里需要注意下标
{
if(a[i]>a[j])
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}