C语言循环例题_第1页
C语言循环例题_第2页
C语言循环例题_第3页
C语言循环例题_第4页
C语言循环例题_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选文库 1. 判断 x 是否是素数 / 输出 a 和 b 之间的所有素数 , 10 个素数为一行输出 #include #include #include int panDuanSuShu(int x) / 为 1 表示是素数, flag 为 0 表示不是素数 int i,m,flag; /flag m=(int)sqrt(x); if(x=2) flag=1; else for(i=2;im) flag=1; return flag; int shuChuSuShu(int a,int b) int i,k=0;/i 是循环变量, k 表示已经输出了 k 个素数 for(i=a;i=b;i

2、+) if(panDuanSuShu(i)=1) printf(%6d,i); k+; if(k%10=0) printf(n); printf(n); return k; int main() int a,b,t; printf( 输入a和b,以便求a和b之间的所有素数n); scanf(%d%d, while(a2|bb) t=a;a=b;b=t; printf(%d和之间共有 d个素数,a,b,shuChuSuShu(a,b); prin tf(nn); return 0; 2. /用户输入2个数,输出这2个数之间所有的超素数 /超素数(质数)的概念:7193是素数,719是素数,71是

3、素数,7是素数,则7193是素数 #i ncludevstdio.h #in clude #in clude 判断某数是否是素数 int isP rime(i nt n)/ int i,f,m=(i nt)sqrt( n); if(n=1) f=0; else for(i=2;im) else return f; int supp erPrime(i nt n)/ 判断某数是否是超素数 int t=n; while(t0) if(is Prime(t)=1) t=t/10; else break; if(t=0) return 1; else return 0; 输出a到b之间所有的超素数 v

4、oid printSupperP rime(i nt a,i nt b)/ int i,m=0; for(i=a;i=b;i+) if(supperP rime(i) prin tf(%8d,i); m+; if(m%5=0) prin tf(n); prin tf(n); int main() int a,b,t; prin tf(i nput a,b:); sca nf(%d%d, while(av2 | bb) t=a;a=b;b=t; printSupperP rime(a,b); prin tf(n); /system( pause); return 0; 3. /满足a*a+b*b

5、=c*c的a,b,c三个数,称为勾股数 /编程输出100以内的所有勾股数 #in clude #in clude in t gouGuShuO int x=0; for(i nt a=1;a=100;a+) for(i nt b=a;b=100;b+) for(i nt c=b;c=100;c+) if(a*a+b*b=c*c) if(x%4=0) prin tf(n); prin tf(%4d%4d%4d,a,b,c); x+; return x; int mai n() 以内的勾股数共有:d个。n,gouGuShu(); prin tf(nn 100 / system( pause); r

6、eturn 0; 4. /有一堆桃子,第一天猴子吃掉桃子的一半又多吃1个,第二天猴子再吃掉桃子的一半又多吃一个 /第10天只剩下1个桃子,问最初有多少个桃子 #in clude #in clude int houZiChiTaoZiO int day=10,x1,x2=1; while(day1) x1=(x2+1)*2; x2=x1; day-; return x1; int mai n() printf(最初桃子有 个n,houZiChiTaoZi(); /system( pause); return 0; 5. 输入年份是2000年,输入元旦为星期6,输入月份为3,则输出: 四 五 六

7、/3 月 日 一 二二 三三 / 1 2 3 4 / 5 6 7 8 9 10 11 / 12 13 14 15 16 17 18 / 19 20 21 22 23 24 25 / 26 27 28 29 30 31 /由用户输入一个年份,再输入该年的元旦是星期几,再输入一个月份,则打印输出该月的日历。 /例如: #i ncludevstdio.h #in clude int Lee pYear(i nt y)/判断某年是否是闰年 if(y%4=0 else return 0; int HowMa nydays(i nt y,i nt m)/判断该月有多少天 int thisMo nthDay

8、s; switch(m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: thisMo nthDays=31;break; case 4: case 6: case 9: case 11:thisMo nthDays=30;break; case 2: if(Lee pYear(y)=1) thisMo nthDays=29; else thisMo nthDays=28; return thisM on thDays; /whichWeek函数判断该月的1号是星期几 int whichWeek(i nt y,i nt m,i

9、 nt w) /w表示该年的元旦是星期几 int febDay;/ 存放2月份有多少天 int days;/存放该月的1号距离元月1号有多少天 int thisWeek;/存放该月的1号是星期几 if(Lee pYear(y) febDay=29; else febDay=28; switch(m) case 1: days=O;break; case 2: days=31;break; case 3: days=31+febDay;break; case 4: days=2*31+febDay;break; case 5: days=2*31+30+febDay;break; case 6:

10、 days=3*31+30+febDay;break; case 7: days=3*31+2*30+febDay;break; case 8: days=4*31+2*30+febDay;break; case 9: days=5*31+2*30+febDay;break; case 10: days=5*31+3*30+febDay;break; case 11:days=6*31+3*30+febDay;break; case 12:days=6*31+4*30+febDay;break; thisWeek=(days+w)%7; return thisWeek; 9 /shuChuRi

11、Li函数的功能是输出日历 void shuChuRiLi (int year,i nt mon th,i nt week) /week int ThisMo nthDay,ThisWeek,d,i; ThisM on thDay=HowMa ny days(year,mo nth);/ ThisWeek=whichWeek(year,mo nth,week);/ prin tf(nn); prin tf(%4d 月 日 一 prin tf(%6c,); d=1; for(i=0;iThisWeek;i+) / prin tf(%6c,); for(i=ThisWeek;i=6;i+,d+) /

12、 prin tf(%6d,d); 表示该年的元旦是星期几 计算这个月有多少天 计算这个月的1号是星期几 四 五六门口0 nth); 输出1号前面的空格 输出1号所在的那1行日历 while(dv=ThisMo nthDay) if(i%7=0) prin tf(n); prin tf(%6c,); prin tf(%6d,d); d+; i+; prin tf(nn); int mai n() int year=-20, mon th=13,week=9; while(year12|mo nthv1) printf(请输入月份:); sca nf(%d, while(week7|week1)

13、prin tf(该年的元旦是星期几?); sca nf(%d, shuChuRiLi(year,m on th,week); system( pause); return 0; 6. /输出三种形式的九九乘法口诀表 #in clude #in clude void che ngFaKouJueBiao1() int i,j; printf( *|); for(i=1;i=9;i+) prin tf(%4d,i); prin tf(n); for(i=1;i=40;i+) prin tf(-); prin tf(n); for(i=1;i=9;i+) prin tf(%2d|,i); for(j

14、=1;jv=9;j+) prin tf(%4d,i*j); prin tf(n); prin tf(nn); void che ngFaKouJueBiao2() int i,j; printf( *); for(i=1;i=9;i+) prin tf(%4d,i); prin tf(n); for(i=1;i=9;i+) prin tf(%2d,i); for(j=1;j=i;j+) prin tf(%4d,i*j); prin tf(n); prin tf(nn); void che ngFaKouJueBiao3() int i,j; prin tf(n); for(i=1;i=9;i+

15、) for(j=1;j=i;j+) prin tf(%d*%d=%-4d,i,j,i*j); prin tf(n); prin tf(nn); int main() che ngFaKouJueBiao1(); che ngFaKouJueBiao2(); che ngFaKouJueBiao3(); / system( pause); return 0; 7. /用户输入三角形的高度,输出由*构成的三角形。 #in clude #in clude void shuChuSa nJiaoX in g(i nt n) int h,k,s; for(h=1;h=n; h+) 精选文库 for(k=

16、1;k=n-h+1;k+) printf(); for(s=1;s #in clude void shuChuK ongXin li ngXin g(i nt n) int h,k,s; for(k=1;k=n ;k+) printf(); prin tf(*n); for(h=2;h=n ;h+) for(k=1;k=n-h+1;k+) printf(); prin tf(*); for(k=1;k=2*h-3;k+) printf(); prin tf(*); prin tf(n); for(h=1;hv=n-2;h+) 10 精选文库 for(k=1;k=h+1;k+) printf()

17、; prin tf(*); for(k=1;k #in clude /输出所有三位的水仙花数 void sa nWeiShuiXia nHuaShu() int i,a,b,c; for(i=100;i #in clude void wan Shu() int i,k,sum; for(i=1;i=1000;i+) sum=0; for(k=1;k=i-1;k+) if(i%k=0) sum=sum+k; if(sum=i) prin tf(%5d:its factors are ,i); for(k=1;k=i-1;k+) prin tf(%d,k); if(i%k=0) 12 精选文库 p

18、rin tf(n); int main() wan Shu(); prin tf(n); system(” pause); return 0; 11. /有6个嫌疑人,案件分析如下: /1.A,B至少有一人作案 /2.A,E,F中至少有两人作案 /3.A,D 不可能是同案犯 /4.B,C 或同时作案,或与本案无关 /5.C,D 中有且仅有一人作案 /6.如果D没作案,则E也没作案。 x1=A|B x2=A for(a=0;a=1;a+) for(b=0;b=1;b+) for(c=0;c=1;c+) for(d=0;d=1;d+) for(e=0;e=1;e+) for(f=0;f #in c

19、lude void shuiZuoLeHaoShiO int k,f=O;/f是找到的标记,f=0表示还没找到 for(k=1;k=4;k+)/k=1 表示第1个人做了好事,k=3表示第3个人做了好事 /如果4句话中有3句话为真,则输出做好事者 if(k!=1)+(k=3)+(k=4)+(k!=4)=3) 做好事者为 c,char(64+k); 表示找到了 printf( f=1;/f=1 如果循环结束后没有找到 找不到! n); if(f!=1)/ printf( int mai n() ShuiZuoLeHaoShiO; prin tf(n); /system( pause); retur

20、n 0; 13. /4 /A /B /C /D /4 人谈论4湖 说:洞庭湖(d)最大,洪泽湖h最小,鄱阳湖b第三 说:洪泽湖h最大,洞庭湖d最小,鄱阳湖b第二,太湖t第三 说:洪泽湖h最小,洞庭湖d第三 说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。 个人每个人仅答对了一个。 /编程给出4个湖从大到小的顺序。 /分析: /A=(d=1)+(h=4)+(b=3) /B=(h=1)+(d=4)+(b=2)+(t=3) /C=(h=4)+(d=3) /D=(b=1)+(t=4)+(h=2)+(d=3) #in clude #in clude void pan Dua nSiDaDa nShui

21、Hu() int b,d,h,t,A,B,C,D; for(b=1;b=4;b+) for(d=1;d=4;d+) for(h=1;h=4;h+) for(t=1;t #i ncludevstdio.h #in clude 15 精选文库 void caiShu() char ch; clock_t start,e nd; /clock_t数据类型用来记录 CPU的运行单元时间(clocks数) 存放玩游戏所用的秒数 存放计算机产生的随机数,guess存放玩家猜的数 double var; /var int i,guess; /i sran d(time(0); prin tf(想测测你的智力

22、么?来试一下?(Y/N)n); ch=getchar(); while(ch=y|ch=Y) i=ra nd()%100+1; printf(n请猜一个1-100之间的数并以最快的速度根据提示猜出所产生的随机数:n); start=clock(); /clocks()函数,返回类型clock_t,返回的是从程序开始,到你掉用clock()函数这段时间的 clocks sca nf(%d, while(guess!=i) if(guessi) printf(大点! n); else printf(小点! n); scan f(%d, en d=clock(); /en d-start prin tf(11: if(var15) prin tf(11 else if(var25) prin tf(11 else prin tf(11 var=(double)(e nd-start)/CLOCKS _P ER_SEC; 是段时间的clocks,除以系统常量CLOCKS PER SEC能得到秒数 太棒了 !你很聪明! 11nn); 还可以啦,继续努力! 11nn); 你好笨呐,再来11nn); 你花了 %6.3f 秒n,var); prin tf(n再来一次吗? (y.or. n)n); sca nf(%*c%c, int mai n() caiShuO; /syst

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论