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

//求某一年是闰年

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

double_happiness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值