1.
/*--------------------------------------------------------------*/
/*有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?*/
/*--------------------------------------------------------------*/
#include <stdio.h>
int main(void )
{
int i,j,k;//i代表百位数,j代表十位数,k代表个位数
int count=0;//统计三位数的个数
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=j&&j!=k&&k!=i)//确保个十百位互不相同
{
printf("%d ",100*i+10*j+k);
count++;
}
}
printf("\n");
printf("the total numbers: %d\n",count);
return 0;
}
2.
/*----------------------------*/
/*一个整数,小于1万, 它加上100后是一
个完全平方数,再加上168又是一个完全平
方数,请问该数是多少? */
/*----------------------------*/
#include<stdio.h>
#include<math.h>
int main(void )
{
int x,y,i;
for(i=1;i<10000;i++)
{
x=sqrt(i+100);//x为加上100后开方的结果
y=sqrt(i+268);//y为又加上168后开方的结果
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("%d\n",i);
return 0;
}
}
3.
/*----------------------------------------*/
/*输入某年某月某日,判断这一天是这一年的第几天?*/
/*---------------------------------------*/
分析:例如6月1日,先把前5个月的天数加起来,再加上1天即是本年的第几天。
#include<stdio.h>
int main(void )
{
int year,month,day,leap,sum;
printf("Input year,month,day\n");
scanf("%d%d%d",&year,&month,&day);
switch(month)//先计算某月以前月份的天数
{
case 1: sum=0;break;
case 2: sum=31;break;
case 3: sum=59;break;
case 4: sum=90;break;
case 5: sum=120;break;
case 6: sum=151;break;
case 7: sum=181;break;
case 8: sum=212;break;
case 9: sum=243;break;
case 10: sum=273;break;
case 11: sum=304;break;
case 12: sum=334;break;
default: printf("data error.");break;
}
sum+=day;//再加上某天的天数
if(year%400==0||year%4==0&&year%100!=0)//判断是不是闰年
leap=1;
else leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It's %dth day.",sum);
return 0;
}