100例C语言经典程序——1-10

//001
/*题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的
三位数?都是多少*/
/*
程序分析:在个位,十位,百位的数字都是1,2,3,4。组成所有排列,然后在去掉三位上
有重复数字的排列。
*/

#include <stdio.h>
int main()
{
	int i,j,k;
	/*使用三重循环*/
	for(i=1;i<5;i++)
		for(j=1;j<5;j++)
			for(k=1;k<5;k++)
				{
					if(i!=k&&i!=j&&j!=k)//i,j,k三位互不相同
					printf("%d%d%d\n",i,j,k);
			
				}	

}

//002
/*题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个
完全平方数,请问该数是多少?*/
/*程序分析:在10万以内判断,先将该数加上100后再开方,在加上268后开方*/
#include<stdio.h>
#include<math.h>
int main()
{
	long int i,x,y,z;
	for(i=1;i<100000;i++)
	{
		x=sqrt(i+100);
		y=sqrt(i+268);
		if(x*x==i+100&&y*y==i+268)
			{
				printf("%ld\n",i);

			}
	
	}
return 0;

}

//003
/*题目:输入某年某月某日,判断这一天是这一年的第几天?*/
/*程序分析:以3月5日为例,应该先把前两个月加起来,然后在加上5天即为本年的
第几天,特殊情况,闰年且输入月份大于3时需要考虑多加一天*/


#include<stdio.h>
int main()
{
	int day,month,year,sum,leap;
	printf("请输入年月日:");
	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=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("%d年%d月%d日是一年中的第%d天",year,month,day,sum);

return 0;
}

//004
/*题目:输入三个整数x,y,z,把这三个数由小到大输出*/
#include<stdio.h>
int main()
{
	int x,y,z,t;
	scanf("%d%d%d",&x,&y,&z);
	if(x>y)
	{
	t=x;x=y;y=t;
	}
	if(x>z)
	{
	t=z;z=x;x=t;
	}
	if(y>z)
	{
		t=y;y=z;z=t;
	}
	printf("%d %d %d\n",x,y,z);

return 0;
}

//005
/*题目:用*号输出字母C的图案*/

#include<stdio.h>
int main(void)

{
printf("Hello C-World!\n");
printf(" ****\n");
printf(" *\n");
printf(" *\n");
printf(" ****\n");
return 0;

}

//006
/*题目:输出特殊图案,请在C环境中运行,看一看,Very Beautiful!*/
#include<stdio.h>
int main()

{

char a=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);

return 0;

}

//007
/*题目:输出9x9乘法口诀*/
/*程序分析:分行与列考虑,共9行9列,i控制行,j控制列*/
#include<stdio.h>
int main()
{
int i,j,result;
printf("\n");
for(i=1;i<10;i++)
{

for(j=1;j<10;j++)
	{
		result=i*j;

printf("%d*%d=%-3d",i,j,result);//-3d表示左对齐,占3位
	}
	printf("\n");//每行后换行

}




}

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

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

#include<stdio.h>
int main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{
printf("%12ld %12ld",f1,f2);
if(i%2==0)printf("\n");//控制输出每行四个
f1=f1+f2;//前两个月加起来赋值给第三个月
f2=f1+f2;
}

return 0;
}

//009
/*题目:打印出所有的"水仙花数",所谓水仙花数是指一个三位数,其余各位数字立方和等于该数本身
例如:153是一个“水仙花数”,,因153=1^3+5^3+3^3*/
//程序分析:用for循环控制100-999个数,每个数分解出个位,十位,百位

#include<stdio.h>
int main()
{

int i,j,k,n;
for(n=100;n<1000;n++)
	{

		i=n/100;//百位
		j=n/10%10;//十位
		k=n%10;//个位
		if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
			{
			printf("%-5d",n);
			}

	}
printf("\n");
return 0;
}

//010
/*题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的
同学用A表示,60-89分之间的同学用B表示。60分以下的同学用C表示。
*/

//程序分析:(a>b)?a:b

#include<stdio.h>
int main()
{

int score;
char grade;
printf("请输入一个分数:\n");
scanf("%d",&score);
grade=score>=90?'A':(score>=60?'B':'C');
printf("%d belongs to %c\n",score,grade);

return 0;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乐亦亦乐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值