经典C语言源代码Word文档下载推荐.docx
《经典C语言源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《经典C语言源代码Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
end[0],&
end[1],&
end[2]);
intsum=0;
for(intmid=start[0];
mid<
end[0];
mid++){
if((mid%400==0)||(mid%4==0&
&
mid%100!
=0)){
sum=sum+366;
}
else
sum=sum+365;
}
sum=sum-indexday(start[0],start[1],start[2])+indexday(end[0],end[1],end[2]);
在%d.%d.%d-%d.%d.%d之间有%d天\n"
start[0],start[1],start[2],end[0],end[1],end[2],sum);
}
intindexday(intyear,intmonth,intday){
inti,flag,dayth;
intmonth_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
dayth=day;
flag=(year%400==0)||(year%4==0&
year%100!
=0);
if(flag)
month_day[2]=29;
for(i=1;
i<
month;
i++)
dayth=dayth+month_day[i];
returndayth;
18、递归求1*1+2*2+3*3+n*n
#include"
"
longElement(intn){
if(n==1)
return1*1;
else
returnElement(n-1)+n*n;
voidmain(){
intn;
请输入n的值:
%d"
n);
所求值为%d\n"
Element(n));
19、最大公约数(辗转相除)
voidmain()/*辗转相除法求最大公约数*/
intm,n,a,b,t,c;
Inputtwointegernumbers:
%d%d"
a,&
b);
m=a;
n=b;
while(b!
=0)/*余数不为0,继续相除,直到余数为0*/
c=a%b;
a=b;
b=c;
Thelargestcommondivisor:
%d\n"
a);
Theleastcommonmultiple:
m*n/a);
20、杨辉三角
voidmain()
inti,j,n,k;
Entern:
=n;
k=1;
for(j=1;
j<
i;
j++)
{
printf("
%3d"
k);
k=k*(i-j)/j;
}//每次要打印的下一个数等于前一个数乘以其所在行数和列数的差再除以其列数
printf("
21、约瑟夫
#include<
{intn,m,i,s=0;
printf("
m:
"
scanf("
n,&
m);
for(i=2;
i<
=n;
i++)s=(s+m)%i;
Thewinneris%d\n"
s+1);
22、斐波拉契
longf,f1,f2;
inti,n;
Entern:
f1=1;
f2=1;
%10d%10d"
f1,f2);
f=f1+f2;
%10d"
f);
f1=f2;
f2=f;
if(i%10==0)
23、海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
main()
inti,m,j,k,count;
for(i=4;
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){
j);
break;
24、验证哥德巴赫猜想,即任一个偶数都可以分解为两个素数之和。
intisprime(int);
voideven(int);
inta;
请输入一个偶数:
a);
if(a%2==0)
even(a);
else
%d不是偶数!
voideven(intx)
inti;
for(i=2;
=x/2;
if(isprime(i)&
isprime(x-i))
%d=%d+%d\n"
x,i,x-i);
return;
intisprime(inta)
=a/2;
if(a%i==0)
return0;
return1;
25、魔方阵
#defineN20
inta[N][N]={0},i,j,k,n;
do
请输入魔幻方的阶数n(n<
%d):
N);
scanf_s("
}
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,则下一个数的行数为n
if(j>
n)j=1;
}//当上一个数的列数为n时,下一个数的列数应为1,行数减去1
if(a[i][j]==0)a[i][j]=k;
/*如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。
*/
else{i+=2;
a[i][j]=k;
j<
%-4d"
a[i][j]);
26、国际象棋棋盘
inti,j;
SetConsoleOutputCP(437);
//显示大于127的asc码
for(i=0;
8;
i++){
for(j=0;
j++){
if((i+j)%2==0)
printf("
%c%c"
219,219);
else
"