C语言 经典小例子


EG1:贪吃的猴子

      有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第 2 天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第 5 天吃了前一天剩下的一般加 5 个)。到第 n天早上再想吃的时候,就只剩下一个桃子了。


#include<stdio.h>
int main()
{
	int n,x=1;
	scanf("%d",&n);
	for(n;n>0;n--)
		x=2*(n-1)+2*x;
	x=x/2;
	if(x>1)
		printf("The monkey got %d peachs in first day.\n",x);
	else if(x==1)printf("The monkey got %d peach in first day.\n",x);
	return 0;

}


EG2:判断三角形的形状

   输入三角型的三条边,判断三角形的形状。假设输入的三边边长均>0。

#include<stdio.h>
void main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a+b<c||b+c<a||c+a<b)
		printf("non-triangle.\n");
	else if(a==b&&b==c)
		printf("equilateral triangle.\n");
	else if(a==b||b==c||c==a)
		printf("isoceles triangle.\n");
	else printf("triangle.\n");
}





EG3:黑色星期五

    在西方,星期五和数字 13 都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。

输入:年份。
输出:判断该年是否包含黑色星期五,如包含,给出具体日期。
#include<stdio.h>
typedef struct
{
	int month;
	int day;
}Data;

int main()
{
	Data data[10];
	int a[13]={0,12,43,71,102,132,163,193,224,255,285,316,346};
	int b[13]={0,12,43,72,103,133,164,194,225,256,286,317,347};
	
	int n=0,i,year;
	scanf("%d",&year);
	if(((year%4==0)&&(year&100!=0))||(year%400==0))
	{
		for(i=1;i<=12;i++)
		{
			if((year*365+(year-1)/4-year/100+year/400+b[i])&7==5)
			{
				data[n].month=i;
				data[n].day=13;
				n++;
			}
		}
	}
	else
	{
		for(i=1;i<=12;i++)
		{
			if((year*365+year/4-year/100+year/400+a[i])%7==5)
			{
				data[n].month=i;
				data[n].day=13;
				n++;
			}	
		}
	}

	if(n==1)
	{
		printf("There is %d Black Friday in year %d.\nIt is:\n",n,year);
		printf("%d/%d/%d\n",year,data[0].month,data[0].day);
	}
	else
	{
		printf("There are %d Black Fridays in year %d.\nThey are:\n",n,year);
		for(i=0;i<n;i++)printf("%d/%d/%d\n",year,data[i].month,data[i].day);
	}
	return 0;
}





EG4:百马百担

   有 100 匹马,驮 100 担货,其中大马驮 3 担,中马驮 2 担,两匹小马驮 1 担。

输入:无;
输出:大、中、小马的个数,用逗号分隔。例如:2,30,68

#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<=100;i++)
	{
		for(j=1;j<=100-i;j++)
		{
			k=100-i-j;
			if((3*i+2*j+k/2.0)==100)
				printf("%d,%d,%d\n",i,j,k);
		}
	}
	return 0;
}




EG5:零钱换整钱

     小明去银行存钱,拿了一堆硬币。已知 1 角的硬币厚度为 1.8mm , 5 角的硬币厚1.5mm , 1 元的硬币为 2.0mm 。小明将 1 角的硬币放成一摞,将 5 角的硬币硬币放成一摞,将 1 元的硬币放成一摞,发现 3 摞硬币一样高。银行正好把这些硬币换成若干张面值为 10 元的纸币。问小明至少带了多少钱的硬币(元为单位),每种面值的硬币有多少个?

#include<stdio.h>
void main()
{
	int yijiao;
	int wujiao;
	int yiyuan;
	int sum;
	for(yiyuan=0;yiyuan<100;yiyuan++)
	{
		for(wujiao=0;wujiao<100;wujiao++)
		{
			for(yijiao=0;yijiao<100;yijiao++)
			{
				sum=yijiao+wujiao*5+yiyuan*10;
if((sum>=100)&&(sum%100==0)&&(18*yijiao==15*wujiao)&&(15*wujiao==20*yiyuan))
				{
					printf("%d,%d,%d,%d\n",yijiao,wujiao,yiyuan,sum/10);
					break;
				}
			}
		}
	}
}




总结:

    考试中,总结中,加油。
相关文章
相关标签/搜索