《C语言循环例题.doc》由会员分享,可在线阅读,更多相关《C语言循环例题.doc(16页珍藏版)》请在金锄头文库上搜索。
1、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)=1)printf(%6d,i
2、);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是素数#include#include#includein
3、t 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;elsebreak;if(t=0) return 1;else return 0;void printSupperPrime(int a,int b)/输出a到b之间所有的超素数int i,m=0;for(i=a;i=b;i+)if(supperPrim
4、e(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以内的所有勾股数#include#includeint gouGuShu()int x=0;for(int a=1;a=100;a+)
5、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个,第二天猴子再吃掉桃子的一半又多吃一个/第10天只剩下1个桃子,问最初有多少个桃子#include#includeint houZiChiTaoZi()int day=10,
6、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月 日 一 二 三 四 五 六/ 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 2
7、7 28 29 30 31#include#includeint LeepYear(int y)/判断某年是否是闰年if(y%4=0&y%100!=0|y%400=0)return 1;elsereturn 0;int HowManydays(int y,int m)/判断该月有多少天int thisMonthDays;switch(m) case 1:case 3:case 5:case 7: case 8: case 10: case 12: thisMonthDays=31;break; case 4: case 6: case 9: case 11:thisMonthDays=30;b
8、reak; 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号有多少天int thisWeek;/存放该月的1号是星期几if(LeepYear(y) febDay=29;else febDay=28; switch(m)case 1: days=0
9、;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: days=4*31+2*30+febDay;break;case 9: days=5*31+2*30+febDay;break;case 10: days=5*31+3*30+febDay;brea
10、k;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表示该年的元旦是星期几int ThisMonthDay,ThisWeek,d,i; ThisMonthDay=HowManydays(year,month);/计算这个月有多少天ThisWeek=whichWeek(year,month,
11、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);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(year0)printf(请输入