C++ 几道程序题

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;	
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/zhangqianqian57/article/details/81274778
今日推荐