C++考试小程序编程思路和简单设计

时间:2021-12-25 23:36:21

//求某一年是闰年

(1)书上源程序

#include<iostream>
using namespace std;
int main()
{
int year;
bool leap;
cout<<"请输入年份:";
cin>>year;
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=true;
else
leap=false;
}
else
leap=true;

else 
leap=false;
if(leap)
cout<<year<<"是";
else
cout<<year<<"不是";
cout<<"闰年"<<endl;
return 0;
}

(2)书程序简化

#include<iostream>
using namespace std;
int main()
{
int year=0;
cout<<"请输入所要求的年份\n";
cin>>year;
if((year%4 == 0&&year%100 != 0)||(year%400 == 0))
cout<<year<<"是闰年"<<endl;
else
cout<<year<<"不是闰年"<<endl;
return 0;
}

(3)求一个范围类的程序以1000~2000为例

#include<iostream>
using namespace std;
int main()
{
int year=0;
for(year=1000; year<=2000; year++)
{
if((year%4 == 0&&year%100 != 0)||(year%400 == 0))
cout<<year<<"   ";
}
return 0;
}


//求素数(一点说明:下面的两个程序在C98之前的编译器上是可以跑过去的,但在C99之后的编译器上,由于对于sqrt的调用类型是有限制的,下面两个程序在编译的过程中就会报有关sqrt的错误,但是对于考试来说下面程序还是OK的)

(1)求一个数

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int num=0;
cout<<"请输入要求的数字:\n";
cin>>num>>endl;
int i=0;
i=sqrt(num);  
int j=0;
for(j=2;j<i;j++)
{
if(num%j != 0)
cout<<num<<"不是素数"<<endl;
else
cout<<num<<"是素数"<<endl;
}
return 0;
}

(2)求一个范围内的素数

#include<iostream>
using namespace std;
int main()
{
int m,k,i,n=0;
bool prime;
for(m=100;m<=200;m++)
{
prime=true;
//k=int(sqrt(m));
for(i=2;i<(m-1);i++)
if(m%i==0)
{
prime=false;
break;
}
if(prime)
{
printf("%d",m);
n=n+1;
}
}
return 0;
}

//求完数

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i=0;
int a=0;
int b=0;
int c=0;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if((a*a*a+b*b*b+c*c*c)==i)
cout<<i;
}
return 0;
}

//鸡兔同笼

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int head=0;
int foot=0;
int i=0;
int a=0;
int b=0;
cout<<"请输入头的个数head和脚的个数foot:\n";  //大多数情况题目已给出
cin>>head>>endl>>foot>>endl;
{
for(i=0; i<=head; i++)
{
a=i;
b=head-i;
if(a*2+b*4 == foot)
break;
}
if(i<=head)
cout<<"有鸡"<<a<<endl<<"有兔"<<b<<endl;
}
return 0;
}

//冒泡法排十个数

#include<iostream>
using namespace std;
#include<iostream>
using namespace std;
int main()
{
int a[10];
int i,j,k;
cout<<"input 10 number:";
for(i=0;i<10;i++)                 //输入a[1]-a[10] 
cin>>a[i];
cout<<endl;
for(j=0;j<=9;j++)                 //进行九轮比较 
for(i=0;i<=9-j;i++)               //每轮中要进行9-j次两两比较 
if(a[i]>a[i+1])                   //如果前面的数大于后面的数,交换两数的位置 
{
k=a[i];
a[i]=a[i+1];
a[i+1]=k;
}
cout<<"the sorted number:"<<endl;
for(i=0;i<10;i++)                  //输出十个数 
cout<<a[i]<<"    ";
cout<<endl;
return 0;
}