首页 经典C语言源代码

经典C语言源代码

举报
开通vip

经典C语言源代码经典C语言源代码1、(1)某年某月某日就是星期几#includeintmain(){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){we...

经典C语言源代码
经典C语言源代码1、(1)某年某月某日就是星期几#includeintmain(){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#includevoidmain(){intm,i,k;printf("请输入一个整数:");scanf_s("%d",&m);k=(int)sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%d就是素数。\n",m);elseprintf("%d不就是素数。\n",m);}14、一个数就是否含有数字5#include#includeboolis5Num(intnum){inttemp=num%10;while(temp!=5&&num>10){num=num/10;temp=num%10;}if(temp!=5)returnfalse;elsereturntrue;}voidmain(){intnum;printf("输入一个数:\n");scanf_s("%d",&num);if(is5Num(num))printf("含5\n");elseprintf("不含5\n");}15、一个排好序得数组,插入一个数#includevoidmain(){inta[11]={1,2,3,4,5,6,7,8,9,10};intnum;printf("插入前数组为:\n");for(inti=0;i<10;i++)printf("%3d",a[i]);printf("\n");printf("请输入一个数:\n");scanf_s("%d",&num);if(num>a[9])a[10]=num;else{for(inti=0;i<10;i++)if(num=i;j--)a[j+1]=a[j];a[i]=num;break;}}printf("插入后数组为:\n");for(inti=0;i<=10;i++)printf("%3d",a[i]);printf("\n");}16、牛顿迭代法:#include#includedoublefunc(doublex){//函数returnx*x*x+2、0*x*x+3、0*x+4、0;}doublefunc1(doublex){//导函数return3*x*x+4*x+3;}voidNewton(doublex0,doubleprecision){//迭代次数doublex1;intk;if(func1(x0)==0、0){//若通过初值,函数返回为0printf("迭代过程中倒数为0!\n");return;}x1=x0-func(x0)/func1(x0);//进行牛顿迭代计算while(!(func1(x1-x0)voidmain()/*辗转相除法求最大公约数*/{intm,n,a,b,t,c;printf("Inputtwointegernumbers:\n");scanf_s("%d%d",&a,&b);m=a;n=b;while(b!=0)/*余数不为0,继续相除,直到余数为0*/{c=a%b;a=b;b=c;}printf("Thelargestmondivisor:%d\n",a);printf("Theleastmonmultiple:%d\n",m*n/a);}20、杨辉三角#includevoidmain(){inti,j,n,k;printf("Entern:");scanf_s("%d",&n);for(i=1;i<=n;i++){k=1;for(j=1;jvoidmain(){intn,m,i,s=0;printf("Entern:m:");scanf("%d%d",&n,&m);for(i=2;i<=n;i++)s=(s+m)%i;printf("Thewinneris%d\n",s+1);}22、斐波拉契#includevoidmain(){longf,f1,f2;inti,n;printf("Entern:");scanf_s("%d",&n);f1=1;f2=1;printf("%10d%10d",f1,f2);for(i=1;i<=n;i++){f=f1+f2;printf("%10d",f);f1=f2;f2=f;if(i%10==0)printf("\n");}}23、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多得一个扔入海中,拿走了一份。第二只猴子把剩下得桃子又平均分成五份,又多了一个,它同样把多得一个扔入海中,拿走了一份,第三、第四、第五只猴子都就是这样做得,问海滩上原来最少有多少个桃子?#includemain(){inti,m,j,k,count;for(i=4;i<10000;i+=4){count=0;m=i;for(k=0;k<5;k++){j=i/4*5+1;i=j;if(j%4==0)count++;elsebreak;}i=m;if(count==4){printf("%d\n",j);break;}}24、验证哥德巴赫猜想,即任一个偶数都可以分解为两个素数之与。#includeintisprime(int);voideven(int);voidmain(){inta;printf("请输入一个偶数:");scanf_s("%d",&a);if(a%2==0)even(a);elseprintf("%d不就是偶数!\n");}voideven(intx){inti;{{for(i=2;i<=x/2;i++)if(isprime(i)&&isprime(x-i)){printf("%d=%d+%d\n",x,i,x-i);return;}}intisprime(inta){inti;for(i=2;i<=a/2;i++)if(a%i==0)return0;return1;}25、魔方阵#include#defineN20voidmain(){inta[N][N]={0},i,j,k,n;doprintf("请输入魔幻方得阶数n(n<%d):",N);scanf_s("%d",&n);}while(n<=0||n>=N||n%2==0);i=n+1;j=n/2+1;a[1][j]=1;//将1放在第一行中间一列for(k=2;k<=n*n;k++)/*从2开始直到n*n各数依次按一下规则存放:每一个数存放得行比前一个数得行数减1,列数加1*/{i--;j++;if(i<1&&j>n){i+=2;j--;}else{if(i<1)i=n;//如果上一个数得行数为1,则下一个数得行数为nif(j>n)j=1;}//当上一个数得列数为n时,下一个数得列数应为1,行数减去1if(a[i][j]==0)a[i][j]=k;/*如果按上面规则确定得位置上已有数,或上一个数就是第一行第n列时,则把下一个数放在上一个数得下面。*/else{i+=2;j--;a[i][j]=k;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%-4d",a[i][j]);printf("\n");}}26、国际象棋棋盘#include#includevoidmain(){inti,j;SetConsoleOutputCP(437);//显示大于127得asc码for(i=0;i<8;i++){for(j=0;j<8;j++){if((i+j)%2==0)printf("%c%c",219,219);elseprintf("");}printf("\n");}}
本文档为【经典C语言源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥15.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
與因
暂无简介~
格式:doc
大小:46KB
软件:Word
页数:0
分类:
上传时间:2021-10-16
浏览量:29