1、C语言循环例题1、/输出a与b之间的所有素数, 10个素数为一行输出#include#include#includeint panDuanSuShu(int x) /判断x就是否就是素数 int i,m,flag; /flag为1表示就是素数,flag为0表示不就是素数 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+) if(panDuanSuShu(i)
2、=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,&a,&b); while(a2|bb) t=a;a=b;b=t; printf(%d与%d之间共有%d个素数,a,b,shuChuSuShu(a,b); printf(nn); return 0;2、/用户输入2个数,输出这2个数之间所有的超素数/超素数(质数)的概念:7193就是素数,719就是素数,71就是素数,7就是素数,则7193就
3、是素数#include#include#includeint isPrime(int n)/判断某数就是否就是素数 int i,f,m=(int)sqrt(n); if(n=1) f=0; else for(i=2;im) f=1; else f=0; return f;int supperPrime(int n)/判断某数就是否就是超素数 int t=n; while(t0) if(isPrime(t)=1) t=t/10; else break; if(t=0) return 1; else return 0;void printSupperPrime(int a,int b)/输出a到b
4、之间所有的超素数 int i,m=0; for(i=a;i=b;i+) if(supperPrime(i) printf(%8d,i); m+; if(m%5=0) printf(n); printf(n);int main() int a,b,t; printf(input a,b:); scanf(%d%d,&a,&b); while(a2 | bb) t=a;a=b;b=t; printSupperPrime(a,b); printf(n); /system(pause); return 0;3、/满足a*a+b*b=c*c的a,b,c三个数,称为勾股数/编程输出100以内的所有勾股数#
5、include#includeint gouGuShu() int x=0; for(int a=1;a=100;a+) for(int b=a;b=100;b+) for(int c=b;c=100;c+) if(a*a+b*b=c*c) if(x%4=0) printf(n); printf(%4d%4d%4d ,a,b,c); x+; return x;int main() printf(nn 100以内的勾股数共有:%d个。n,gouGuShu(); / system(pause); return 0;4、/有一堆桃子,第一天猴子吃掉桃子的一半又多吃1个,第二天猴子再吃掉桃子的一半又多
6、吃一个/第10天只剩下1个桃子,问最初有多少个桃子#include#includeint houZiChiTaoZi() int day=10,x1,x2=1; while(day1) x1=(x2+1)*2; x2=x1; day-; return x1;int main() printf(最初桃子有%d个n,houZiChiTaoZi(); /system(pause); return 0;5、/由用户输入一个年份,再输入该年的元旦就是星期几,再输入一个月份,则打印输出该月的日历。/例如:输入年份就是2000年,输入元旦为星期6,输入月份为3,则输出:/3月 日 一 二 三 四 五 六/
7、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#include#includeint LeepYear(int y)/判断某年就是否就是闰年 if(y%4=0&y%100!=0|y%400=0) return 1; else return 0;int HowManydays(int y,int m)/判断该月有多少天 int thisMonthDays; switch(m) case 1: case 3: case 5: case 7: case 8: case 10
8、: case 12: thisMonthDays=31;break; case 4: case 6: case 9: case 11:thisMonthDays=30;break; case 2: if(LeepYear(y)=1) thisMonthDays=29; else thisMonthDays=28; return thisMonthDays;/whichWeek函数判断该月的1号就是星期几int whichWeek(int y,int m,int w) /w表示该年的元旦就是星期几 int febDay;/存放2月份有多少天 int days;/存放该月的1号距离元月1号有多少天
9、 int thisWeek;/存放该月的1号就是星期几 if(LeepYear(y) febDay=29; else febDay=28; switch(m) case 1: days=0;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: days=3*31+30+febDay;break; case 7: days=3*31+2*30+febDay;break; case 8
10、: 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;/shuChuRiLi函数的功能就是输出日历void shuChuRiLi(int year,int month,int week) /week表示该年的元旦就是星期
11、几 int ThisMonthDay,ThisWeek,d,i; ThisMonthDay=HowManydays(year,month);/计算这个月有多少天 ThisWeek=whichWeek(year,month,week);/计算这个月的1号就是星期几 printf(nn); printf(%4d月 日 一 二 三 四 五 六n,month); printf(%6c, ); d=1; for(i=0;iThisWeek;i+) /输出1号前面的空格 printf(%6c, ); for(i=ThisWeek;i=6;i+,d+) /输出1号所在的那1行日历 printf(%6d,d)
12、; while(d=ThisMonthDay) if(i%7=0) printf(n); printf(%6c, ); printf(%6d,d); d+; i+; printf(nn); int main() int year=-20,month=13,week=9; while(year12|month7|week1) printf(该年的元旦就是星期几?); scanf(%d,&week); shuChuRiLi(year,month,week); system(pause); return 0;6、/输出三种形式的九九乘法口诀表#include#includevoid chengFaK
13、ouJueBiao1() int i,j; printf( *|); for(i=1;i=9;i+) printf(%4d,i); printf(n); for(i=1;i=40;i+) printf(-); printf(n); for(i=1;i=9;i+) printf(%2d|,i); for(j=1;j=9;j+) printf(%4d,i*j); printf(n); printf(nn);void chengFaKouJueBiao2() int i,j; printf( *); for(i=1;i=9;i+) printf(%4d,i); printf(n); for(i=1;
14、i=9;i+) printf(%2d,i); for(j=1;j=i;j+) printf(%4d,i*j); printf(n); printf(nn); void chengFaKouJueBiao3() int i,j; printf(n); for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%d*%d=%-4d,i,j,i*j); printf(n); printf(nn);int main() chengFaKouJueBiao1(); chengFaKouJueBiao2(); chengFaKouJueBiao3(); / system(pause);
15、 return 0;7、/用户输入三角形的高度,输出由*构成的三角形。 #include#includevoid shuChuSanJiaoXing(int n) int h,k,s; for(h=1;h=n;h+) for(k=1;k=n-h+1;k+) printf( ); for(s=1;s=2*h-1;s+) printf(*); printf(n); printf(nn); int main() int n; printf(输入三角形的行数:); scanf(%d,&n); while(n2) printf(输入三角形的行数:); scanf(%d,&n); shuChuSanJia
16、oXing(n); /system(pause); return 0; 8、/输出边长为n的空心菱形 #include#includevoid shuChuKongXinlingXing(int n) int h,k,s; for(k=1;k=n;k+) printf( ); printf(*n); for(h=2;h=n;h+) for(k=1;k=n-h+1;k+) printf( ); printf(*); for(k=1;k=2*h-3;k+) printf( ); printf(*); printf(n); for(h=1;h=n-2;h+) for(k=1;k=h+1;k+) pr
17、intf( ); printf(*); for(k=1;k=2*n-2*h-3;k+) printf( ); printf(*); printf(n); for(k=1;k=n;k+) printf( ); printf(*); printf(nn); int main() int n; printf(输入菱形的边长:); scanf(%d,&n); while(n2) printf(菱形边长必须大于2,请重新输入菱形的边长:); scanf(%d,&n); shuChuKongXinlingXing(n); / system(pause); return 0; 9、#include#incl
18、ude/输出所有三位的水仙花数void sanWeiShuiXianHuaShu() int i,a,b,c; for(i=100;i=999;i+) a=i/100; b=i/10%10; / b=i%100/10; c=i%10; if(i=a*a*a+b*b*b+c*c*c) printf(%6d,i); /输出所有四位的水仙花数void siWeiShuiXianHuaShu() int i,a,b,c,d; for(i=1000;i=9999;i+) a=i/1000; b=i/100%10; c=i/10%10; d=i%10; if(i=a*a*a*a+b*b*b*b+c*c*c
19、*c+d*d*d*d) printf(%6d,i); int main() printf(三位的水仙花数有:n); sanWeiShuiXianHuaShu(); printf(nn); printf(四位的水仙花数有:n); siWeiShuiXianHuaShu(); printf(nn); /system(pause); return 0; 10、/一个整数的所有因子之与等于该数,则这个数就是完数。/输出1000以内的完数及其因子#include#includevoid wanShu() int i,k,sum; for(i=1;i=1000;i+) sum=0; for(k=1;k=i
20、-1;k+) if(i%k=0) sum=sum+k; if(sum=i) printf(%5d:its factors are ,i); for(k=1;k=i-1;k+) if(i%k=0) printf(%d,k); printf(n); int main() wanShu(); printf(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也没作案。/假设案件分析正确
21、,请编程将作案人找出来/分析: /1、 x1=A|B/2、 x2=A&E | A&F | E&F/3、 x3=!(A&D)/4、 x4=B&C | !B&!C/5、 x5=C&!D | !C&D/6、 x6=!D!E 等价于 x6=D|!E/令X=x1+x2+x3+x4+x5+x6为6的结果就就是答案#include#includevoid zhenTanDuanAn() int a,b,c,d,e,f,x1,x2,x3,x4,x5,x6,x; 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
22、;e+) for(f=0;f=1;f+) x1=a|b; x2=a&e|a&f|e&f; x3=!(a&d); x4=b&c|!b&!c; x5=c&!d|!c&d; x6=d|!e; x=x1+x2+x3+x4+x5+x6; if(x=6) printf(A%s罪犯,B%s罪犯,C%s罪犯,D%s罪犯,E%s罪犯,F%s罪犯nn, a=1?就是:不就是,b=1?就是:不就是,c=1?就是:不就是, d=1?就是:不就是,e=1?就是:不就是,f=1?就是:不就是); /printf(A=%d,B=%d,C=%d,D=%d,E=%d,F=%dn,a,b,c,d,e,f); int main()
23、 zhenTanDuanAn(); /system(pause); return 0;12、/一学校有4位学生中的1位做了好事不留名,/表扬信来了之后,校长问这4位就是谁做了好事。/A说:不就是我;B说:就是C;C说:就是D;D说:她胡说。/已知3个人说的就是真话,一个人说的就是假话。/请编程找出做好事的人。#include#includevoid shuiZuoLeHaoShi() int k,f=0;/f就是找到的标记,f=0表示还没找到 for(k=1;k=4;k+)/k=1表示第1个人做了好事,k=3 表示第3个人做了好事、 /如果4句话中有3句话为真,则输出做好事者 if(k!=1)
24、+(k=3)+(k=4)+(k!=4)=3) printf(做好事者为%c,char(64+k); f=1;/f=1表示找到了 if(f!=1)/如果循环结束后没有找到 printf(找不到!n);int main() shuiZuoLeHaoShi(); printf(n); /system(pause); return 0;13、/4人谈论4湖/A说:洞庭湖(d)最大,洪泽湖h最小,鄱阳湖b第三/B说:洪泽湖h最大,洞庭湖d最小,鄱阳湖b第二,太湖t第三/C说:洪泽湖h最小,洞庭湖d第三/D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。/4个人每个人仅答对了一个。/编程给出4个湖从大到小的顺序。/分析:/A=(d=1)+(h=4)+(b=3)/B=(h=1)+(d=4)+(b=2)+(t=3)/C=(h=4)+(d=3)/D=(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1