经典C语言源代码1、(1)某年某月某日就是星期几#include
intmain(){intyear,month,day;while(scanf_s("%d%d%d",&year,&month,&day)!=EOF){if(month==1||month==2)//判断month就是否为1或2{year--;month+=12;}intc=year/100;inty=year-c*100;intweek=(c/4)-2*c+(y+y/4)+(13*(month+1)/5)+day-1;while(week<0){week+=7;}week%=7;switch(week){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case0:printf("Sunday\n");break;}}return0;}1、(2)某年某月某日就是第几天(一维数组)#include"stdio、h"voidmain(){inti,flag,year,month,day,dayth;intmonth_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};printf("请输入年/月/日:\n");scanf_s("%d/%d/%d",&year,&month,&day);dayth=day;flag=(year%400==0)||(year%4==0&&year%100!=0);if(flag)month_day[2]=29;for(i=1;ia[j+1]){temp=a[j];a[j]=a[j+1];//大得沉底,小得上浮a[j+1]=temp;}}}printf("排序结果:\n");for(i=0;i<10;i++)printf("%4d",a[i]);}9、两数组A,B,要求AvoidReArranger(int*A,int*B,intm,intn)//A与B就是各有与n个整数得非降序数组,本算法将B数组元素逐个插入到使A中各元素均不大于B中各元素,且两数组仍保持非降序排列{intx,j,i;while(A[m-1]>B[0]){x=A[m-1];A[m-1]=B[0];//交换A[m-1]与B[0]j=1;while(j=0&&A[i]>x)A[i+1]=A[i--];//寻找B[0]得插入位置A[i+1]=x;}}voidmain()//这里主要介绍算法思想,主函数就简单写了{intA[3],B[5],i;printf("输入第一个数组:");for(i=0;i<3;i++){scanf_s("%d",&A[i]);}printf("\n输入第二个数组:");for(i=0;i<5;i++){scanf_s("%d",&B[i]);}ReArranger(A,B,3,5);printf("\n输出第一个数组:");for(i=0;i<3;i++)printf("%d",A[i]);printf("\n\n");printf("输出第二个数组:");for(i=0;i<5;i++)printf("%d",B[i]);printf("\n");}10、符合1+6+3=3+2+5=1+4+5有哪几组A1BC64DEF到325#include}}voidmain(){inta,b,c,d,e,f;for(a=1;a<=6;a++)for(b=1;b<=6;b++){if(b==a)continue;for(c=1;c<=6;c++){if((c==a)||(c==b))continue;for(d=1;d<=6;d++){if((d==a)||(d==b)||(d==c))continue;for(e=1;e<=6;e++){if((e==a)||(e==b)||(e==c)||(e==d))continue;f=21-(a+b+c+d+e);if((a+b+d==d+e+f)&&(a+b+d==a+c+f)){printf("%d\n",a);printf("%d%d\n",b,c);printf("%d%d%d\n",d,e,f);}}}}}}11、输入一串字符,升序排序,折半查找其中一字符#includevoid*sortString(charunsort[],intlength){for(inti=0;iunsort[j]){inttemp=unsort[j];unsort[j]=unsort[i];unsort[i]=temp;}}}}voidmain(){chars1[50];gets(s1);charvalue;scanf_s("%c",&value);printf("s1:%s\n",s1);printf("value:%c\n",value);intlength=strlen(s1);printf("length:%d\n",length);sortString(s1,length);printf("s1:%s\n",s1);intstart=0,end=length-1;intmid=(end+start)/2;while(start<=end&&s1[mid]!=value){mid=(end+start)/2;if(value>s1[mid])start=mid+1;elseend=mid-1;}if(mid)printf("该字符在已知字符串中,即在第%d个\n",mid);elseprintf("该字符不在已知字符串中\n");}12、100-300与500-700直接素数,m不被2到根号m直接任一整#includeintisprime(intn){if(n<2)return0;for(inti=2;i#include