第二天

  昨晚去机房,本想着编1-2小时的程序,结果机房的破电脑超难使,一编译运行就死机,害得我白白浪费了两个多小时,心疼啊···

  总得想个办法吧,宿舍不是个编程的地方,哎哎,怎么办呢···

 

今天的第一个程序,其实是为了测试电脑上的Visual C++好不好使:

题目四:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include<stdio.h>

#include<math.h>

main()

{

int x,y,i;

for(i=0;i<10000;i++){

x=(int)sqrt(i+100);

y=(int)sqrt(i+268);

if(x*x==i+100 &&y*y==i+268)

printf("%d/n",i);

}

}

 

 

题目五:输入某年某月某日,判断这一天是这一年的第几天?

 

#include<stdio.h>

#include<math.h>

main()

{

int year,month,day,num;

num=0;

printf("请输入你想查询的年月日:/n");

scanf("%d,%d,%d",&year,&month,&day);//在运行框中输入三个参数时,要用逗号隔开

switch(month){

case 1:num=0;break;

case 2:num=28;break;

case 3:num=59;break;

case 4:num=90;break;

case 5:num=120;break;

case 6:num=151;break;

case 7:num=181;break;

case 8:num=212;break;

case 9:num=243;break;

case 10:num=273;break;

case 11:num=304;break;

case 12:num=334;break;

default:

printf("输入的时间错误/n"); break;

}

if(year%400==0 || (year%4==0 && year%100!=0))

if(month>2)

num+=1;

num+=day;

printf("您输入的时间是该年中的第%d天/n",num);

}

 

题目六:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对?

 

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21….

 

 

#include<stdio.h>

main(){

int a,b,i,temp;

a=b=1;

printf("%d/t",a);

for(i=1;i<=20;i++){

 

temp=b;

b=a+b;

a=temp;

printf("%d/t",a);

}

}

  虽然这是一个很简单的问题,却让我想了很长时间,当真正编出这段代码和运行正确时,我很开心,有小小的成就感,因为是靠自己的思考做出来的···

  我对这道题的理解是:a,b的初始值均为1,每次运算中,把b的值赋值给a,并把上次a,b的值相加,并赋值给b,就可以得到分析中的结果。

 

 

题目七:输出9*9口诀

 

#include<stdio.h>

#include<math.h>

main()

{

int i,j,sum;

for(i=1;i<=9;i++){

for(j=1;j<=i;j++){

sum=i*j;

printf("%d*%d=%d/t",i,j,sum);

}

printf("/n");

}

}

 

 

题目八:判断101-200之间有多少个素数,并输出所有素数。

 

程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

 

 

#include<stdio.h>

#include<math.h>

main()

{

int i,j,sqr,chu,count,leap;

count=0;

for(i=101;i<200;i++){

sqr=(int)sqrt(i);

for(j=2;j<=sqr;j++){

chu=i/j;

leap=0;

//对于/运算,如果不能整除,只能取其整数部分,将商(可能是取整后的)与除数相乘,

//若结果和被除数相同,则说明能够整除,则该数不是素数···

if(i==chu*j) {leap++; break;}

//当所有的除数都遍历完,且没有一个满足条件是,输出这个i值

}

if(leap==0)

{

printf("%d/t",i);

count++;

}

}

printf("/n101-200之间共有%d个素数/n",count);

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值