孙甲松《计算机程序设计基础》循环练习

上传人:marr****208 文档编号:117048196 上传时间:2019-11-18 格式:DOC 页数:12 大小:202KB
返回 下载 相关 举报
孙甲松《计算机程序设计基础》循环练习_第1页
第1页 / 共12页
孙甲松《计算机程序设计基础》循环练习_第2页
第2页 / 共12页
孙甲松《计算机程序设计基础》循环练习_第3页
第3页 / 共12页
孙甲松《计算机程序设计基础》循环练习_第4页
第4页 / 共12页
孙甲松《计算机程序设计基础》循环练习_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《孙甲松《计算机程序设计基础》循环练习》由会员分享,可在线阅读,更多相关《孙甲松《计算机程序设计基础》循环练习(12页珍藏版)》请在金锄头文库上搜索。

1、样题1(其中1算素数216 1不算素数148)#includeint sushu(int n)int i,flag=0;if(n=2|n=1) flag=1;for(i=2;in;i+)flag=1;if(n%i=0) flag=0;if(flag=0) break;return(flag);main()int k,count=0;int sushu(int);for(k=1000;k=9999;k+)if(sushu(k)&sushu(k-(k/1000)*1000)&sushu(k-(k/100)*100)&sushu(k-(k/10)*10)printf(%dn,k);count+;pr

2、intf(这样的四位整数有%d个n,count);system(pause);样题2#includemain()int n,a,b,c,sum=0;for(n=100;n=999;n+)a=n/100;b=(n/10)%10;c=n%10;if(n=a*a*a+b*b*b+c*c*c) printf(%dn,n);sum=sum+n;printf(The sum is:%d,sum);system(pause);象爷的样题1.#includemain()int a,b;for(a=1;a=100;a+)for(b=1;b=33;b+)if(100-a-3*b=0) break;else if(

3、5*a+3*(100-a-3*b)+b=100)printf(站着的水牛%d,躺着的水牛%d,老水牛%d,a,100-a-3*b,3*b);system(pause);2.#includemain()double p=1;int i,count=1;for(i=1;i10)p=p/10;count+=1;printf(%d,count);system(pause);不能先求完阶乘 把数字储存下来 然后再除10 因为double型数最多放318位 而1000!有2568位 放不进double型数中 必须边除边乘3.#includemain()int a,b,n,i,sum=0;scanf(%d,

4、%d,%d,&a,&b,&n);for(i=1;i=n;i+) if(a=0|b=0) break;else sum=sum+a*b;a=a-1;b=b-1;printf(%d,sum);system(pause);4./*六位数每个数字不同两倍三倍都是六位数且是原来六位数的重排*/#includemain()int x,a36,b10,i,j,flag; /*b是标记数组*/for(x=102345;x329876;x+)flag=0;a00=x%10;a01=(x/10)%10;a02=(x/100)%10;a03=(x/1000)%10;a04=(x/10000)%10;a05=x/10

5、0000;for(i=0;i10;i+)bi=0;for(i=0;i6;i+)j=a0i;if(bj=1)flag=1;break;else bj=1;if(flag=1) continue; /*判断x的六位数字是否相同*/elsea10=(2*x)%10;a11=(2*x/10)%10;a12=(2*x/100)%10;a13=(2*x/1000)%10;a14=(2*x/10000)%10;a15=2*x/100000;for(i=0;i6;i+)j=a1i;if(bj=0|bj=2) flag=1;else bj=2;if(flag=1) break;if(flag=1) contin

6、ue;elsea20=(3*x)%10;a21=(3*x/10)%10;a22=(3*x/100)%10;a23=(3*x/1000)%10;a24=(3*x/10000)%10;a25=3*x/100000;for(i=0;i6;i+)j=a2i;if(bj=0|bj=3) flag=1;else bj=3;if(flag=1) break;if(flag=1) continue;else printf(%dn,x);system(pause);标记数组 以及 记得标记数组在每次循环前要清零!还有一种判断两个六位数是否是相同数字重排的方法:调用一个重排函数 求最小的排列(冒泡排序!)例 四十

7、个人循环报123 报3的人死 最后留下来的是谁#includemain()int a40,*p40,i,j,k,s=40;for(i=0;i1)j=0;for(i=0;i=39;i+)if(ai=1)pj=&ai; /*杀了一轮后重新排序 i是所有人的原始编号j是重新编号问题出在j j%3是报的数字*/ j+;for(k=0;kj;k+)if(k+1)%3=0) *pk=0; /*杀人*/s=0;for(k=0;k40;k+) /*判断是否要结束循环*/s=s+ak;for(k=0;k40;k+)if(ak=0) printf(%d,k+1); /*找活下来的人*/system(pause);

8、5.#includemain()int i,a5,flag=0;for(i=3;flag!=1;i+)for(a0=1;a0=i&flag!=1;a0+)for(a1=1;a1=i&flag!=1;a1+)for(a2=1;a2=i&flag!=1;a2+)for(a3=1;a3=i&flag!=1;a3+)for(a4=1;a4=i&flag!=1;a4+)if(a0!=a4&a0!=a3&a0!=a2&a4!=a3&a3!=a2&a3!=a1&a1!=a2)flag=1;printf(至少有%d种颜色n,i);printf(A:%dn,a0);printf(B:%dn,a1);printf

9、(C:%dn,a2);printf(D:%dn,a3);printf(E:%dn,a4);system(pause);一开始没想到用定义一个颜色总数i 打算取数组中最大数输出 但这样可能会出现形如12345的涂法另外 注意for中第二个语句 是while的意思 所以应该写成flag!=1 而不是flag=16.#includemain()int p10,i,j,s8,k=1,a10,flag; /*a是标记数组不要在意为什么p是有十个数的数组*/for(p1=1;p1=9;p1+)for(p2=1;p2=9;p2+) for(p3=1;p3=9;p3+)for(p4=1;p4=9;p4+)fo

10、r(p5=1;p5=9;p5+)for(p6=1;p6=9;p6+)for(p7=1;p7=9;p7+)for(p8=1;p8=9;p8+)for(p9=1;p9=9;p9+)flag=0; /*flag清零*/for(i=1;i=9;i+)ai=0; /*为标记数组清零*/for(i=1;i=9;i+)j=pi;if(aj=0) aj=1;else flag=1;if(flag=1) break;if(flag=1) continue;s0=p1+p2+p3;s1=p4+p5+p6;s2=p7+p8+p9;s3=p1+p4+p7;s4=p2+p5+p8;s5=p3+p6+p9;s6=p1+p5+p9;s7=p3+p5+p7;for(i=0;i=7;i+)if(si!=15) flag=1;if(flag=0) printf(第%d种:n%d %d %dn%d %d %dn%d %d %dn,k,p1,p2,p3,p4,p5,p6,p7,p8,p9);k

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号