C语言 经典小例子

来源:互联网 发布:崩坏3rd网络连接失败 编辑:程序博客网 时间:2024/04/29 16:42


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




总结:

    考试中,总结中,加油。




0 0