C语言循环例题Word文件下载.docx
《C语言循环例题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言循环例题Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
while(a<
2||b<
2)
重新输入n与m:
"
if(a>
b)
{t=a;
a=b;
b=t;
%d与%d之间共有%d个素数"
a,b,shuChuSuShu(a,b));
\n\n"
return0;
2、
//用户输入2个数,输出这2个数之间所有的超素数
//超素数(质数)的概念:
7193就是素数,719就是素数,71就是素数,7就是素数,则7193就是素数#include<
intisPrime(intn)//判断某数就是否就是素数
inti,f,m=(int)sqrt(n);
if(n==1)f=0;
{for(i=2;
i++){
if(n%i==0)
break;
f=1;
f=0;
returnf;
intsupperPrime(intn)//判断某数就是否就是超素数{
intt=n;
while(t>
0)
if(isPrime(t)==1)t=t/10;
elsebreak;
if(t==0)return1;
elsereturn0;
输出a到b之间所有的超素数
voidprintSupperPrime(inta,intb)//
inti,m=0;
for(i=a;
{if(supperPrime(i)){printf("
%8d"
m++;
if(m%5==0)printf("
}printf("
printf("
inputa,b:
2||b<
b){t=a;
}printSupperPrime(a,b);
//system("
pause"
3、
//满足a*a+b*b==c*c的a,b,c三个数,称为勾股数
//编程输出100以内的所有勾股数#include<
#include<
intgouGuShu()
intx=0;
for(inta=1;
a<
=100;
a++)for(intb=a;
b<
b++)
for(intc=b;
c<
c++)if(a*a+b*b==c*c){
if(x%4==0)printf("
%4d%4d%4d"
a,b,c);
x++;
returnx;
\n\n100以内的勾股数共有:
%d个。
\n"
gouGuShu());
//system("
4、
//有一堆桃子,第一天猴子吃掉桃子的一半又多吃1个,第二天猴子再吃掉桃子的一半又多吃一个//第10天只剩下1个桃子,问最初有多少个桃子
inthouZiChiTaoZi()
intday=10,x1,x2=1;
while(day>
1)
{x1=(x2+1)*2;
x2=x1;
day--;
returnx1;
最初桃子有%d个\n"
houZiChiTaoZi());
5、//由用户输入一个年份,再输入该年的元旦就是星期几,再输入一个月份,则打印输出该月的日历
//例如:
输入年份就是2000年,输入元旦为星期6,输入月份为3,则输出:
intLeepYear(inty)//判断某年就是否就是闰年
if(y%4==0&
&
y%100!
=0||y%400==0)return1;
}intHowManydays(inty,intm)//判断该月有多少天
intthisMonthDays;
switch(m)
case1:
case3:
case5:
case7:
case8:
case10:
case12:
thisMonthDays=31;
case4:
case6:
case9:
case11:
thisMonthDays=30;
case2:
if(LeepYear(y)==1)thisMonthDays=29;
elsethisMonthDays=28;
returnthisMonthDays;
//whichWeek函数判断该月的1号就是星期几
intwhichWeek(inty,intm,intw)//w表示该年的元旦就是星期几{
intfebDay;
//存放2月份有多少天
intdays;
//存放该月的1号距离元月1号有多少天
intthisWeek;
//存放该月的1号就是星期几if(LeepYear(y))
{febDay=29;
}else
{febDay=28;
}switch(m)
days=0;
days=31;
days=31+febDay;
days=2*31+febDay;
days=2*31+30+febDay;
days=3*31+30+febDay;
days=3*31+2*30+febDay;
days=4*31+2*30+febDay;
days=5*31+2*30+febDay;
days=5*31+3*30+febDay;
days=6*31+3*30+febDay;
days=6*31+4*30+febDay;
thisWeek=(days+w)%7;
returnthisWeek;
//shuChuRiLi函数的功能就是输出日历
voidshuChuRiLi(intyear,intmonth,intweek)//week表示该年的元旦就是星期几
intThisMonthDay,ThisWeek,d,i;
ThisMonthDay=HowManydays(year,month);
//计算这个月有多少天ThisWeek=whichWeek(year,month,week);
//计算这个月的1号就是星期几printf("
%4d月日一二三四五六\n"
month);
%6c"
'
'
d=1;
for(i=0;
ThisWeek;
i++)//输出1号前面的空格printf("
for(i=ThisWeek;
=6;
i++,d++)//输出1号所在的那1行日历printf("
d);
while(d<
=ThisMonthDay)
if(i%7==0)
d++;
i++;
intyear=-20,month=13,week=9;
while(year<
请输入年份:
%d"
year);
while(month>
12||month<
请输入月份:
month);
while(week>
7||week<
该年的元旦就是星期几?
"
week);
shuChuRiLi(year,month,week);
system("
6、
//输出三种形式的九九乘法口诀表#include<
voidchengFaKouJueBiao1()
inti,j;
*|"
for(i=1;
=9;
i++)printf("
%4d"
=40;
-"
%2d|"
for(j=1;
j<
j++)
i*j);
voidchengFaKouJueBiao2()
*"
%2d"
=i;
voidchengFaKouJueBiao3()
for(j=1;
%d*%d=%-4d"
i,j,i*j);
chengFaKouJueBiao1();
chengFaKouJueBiao2();
chengFaKouJueBiao3();
7、
//用户输入三角形的高度,输出由*构成的三角形#include<
voidshuChuSanJiaoXing(intn)
inth,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("
*"
intn;
输入三角形的行数:
scanf("
n);
while(n<
shuChuSanJiaoXing(n);
8、
//输出边长为n的空心菱形#include<
voidshuChuKongXinlingXing(intn){
k++)
*\n"
for(h=2;
=2*h-3;
=n-2;
=h+1;
for(k=1;
=2*n-2*h-3;
输入菱形的边长:
菱形边长必须大于2,请重新输入菱形的边长:
shuChuKongXinlingXing(n);
9、
//输出所有三位的水仙花数voidsanWeiShuiXianHuaShu(){
inti,a,b,c;
for(i=100;
=999;
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("
//输出所有四位的水仙花数
voidsiWeiShuiXianHuaShu()
inti,a,b,c,d;
for(i=1000;
=9999;
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*c+d*d*d*d)printf("
三位的水仙花数有:
sanWeiShuiXianHuaShu();
四位的水仙花数有:
siWeiShuiXianHuaShu();
10、
//一个整数的所有因子之与等于该数,则这个数就是完数。
//输出1000以内的完数及其因子
voidwanShu()
inti,k,sum;
=1000;
sum=0;
=i-1;
{if(i%k==0)sum=sum+k;
if(sum==i)
%5d:
itsfactorsare"
if(i%k==0)printf("
%d,"
k);
wanShu();
system("
11、
//有6个嫌疑人,案件分析如下:
//1、A,B至少有一人作案
//2、A,E,F中至少有两人作案
//3、A,D不可能就是同案犯
//4、B,C或同时作案,或与本案无关
//5、C,D中有且仅有一人作案
//6、如果D没作案,则E也没作案。
//假设案件分析正确,请编程将作案人找出来
//分析:
//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<
voidzhenTanDuanAn(){
inta,b,c,d,e,f,x1,x2,x3,x4,x5,x6,x;
for(a=0;
=1;
a++)
for(b=0;
b++)for(c=0;
c++)for(d=0;
d<
d++)for(e=0;
e<
e++)for(f=0;
f<
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){
A%s罪犯,B%s罪犯,C%s罪犯,D%s罪犯,E%s罪犯,F%s罪犯\n\n"
a==1?
就是"
:
不就是"
b==1?
就是"
c==1?
d==1?
不就是"
e==1?
f==1?
//printf("
A=%d,B=%d,C=%d,D=%d,E=%d,F=%d\n"
a,b,c,d,e,f);
zhenTanDuanAn();
12、
//一学校有4位学生中的1位做了好事不留名,//表扬信来了之后,校长问这4位就是谁做了好事。
//A说:
不就是我;
B说:
就是C;
C说:
就是D;
D说:
她胡说。
//已知3个人说的就是真话,一个人说的就是假话。
//请编程找出做好事的人。
voidshuiZuoLeHaoShi(){
intk,f=0;
//f就是找到的标记,f=0表示还没找到
=4;
k++)//k=1表示第1个人做了好事,k=3表示第3个人做了好事、、、{
//如果4句话中有3句话为真,则输出做好事者if(((k!
=1)+(k==3)+(k==4)+(k!
=4))==3)
做好事者为%c"
char(64+k));
//f=1表示找到了
if(f!
=1)//如果循环结束后没有找到
找不到!
shuiZuoLeHaoShi();
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=(b==1)+(t==4)+(h==2)+(d==3)#include<
voidpanDuanSiDaDanShuiHu(){
intb,d,h,t,A,B,C,D;
for(b=1;
b++)for(d=1;
d++)
h++)for(t=1;
t<
t++){
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);
if(A==1&
B==1&
C==1&
D==1&
b!
=d&
=h&
=t&
d!
h!
=t)
洪泽湖第%d\n鄱阳湖第%d\n太湖第%d\n洞庭湖第%d\n\n"
h,b,t,d);
panDuanSiDaDanShuiHu();
14、
//猜一个1-100之间的数并以最快的速度根据提示猜出所产生的随机数
time、h>
#incl