C语言循环例题.docx

上传人:b****5 文档编号:8787497 上传时间:2023-05-15 格式:DOCX 页数:29 大小:20.30KB
下载 相关 举报
C语言循环例题.docx_第1页
第1页 / 共29页
C语言循环例题.docx_第2页
第2页 / 共29页
C语言循环例题.docx_第3页
第3页 / 共29页
C语言循环例题.docx_第4页
第4页 / 共29页
C语言循环例题.docx_第5页
第5页 / 共29页
C语言循环例题.docx_第6页
第6页 / 共29页
C语言循环例题.docx_第7页
第7页 / 共29页
C语言循环例题.docx_第8页
第8页 / 共29页
C语言循环例题.docx_第9页
第9页 / 共29页
C语言循环例题.docx_第10页
第10页 / 共29页
C语言循环例题.docx_第11页
第11页 / 共29页
C语言循环例题.docx_第12页
第12页 / 共29页
C语言循环例题.docx_第13页
第13页 / 共29页
C语言循环例题.docx_第14页
第14页 / 共29页
C语言循环例题.docx_第15页
第15页 / 共29页
C语言循环例题.docx_第16页
第16页 / 共29页
C语言循环例题.docx_第17页
第17页 / 共29页
C语言循环例题.docx_第18页
第18页 / 共29页
C语言循环例题.docx_第19页
第19页 / 共29页
C语言循环例题.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言循环例题.docx

《C语言循环例题.docx》由会员分享,可在线阅读,更多相关《C语言循环例题.docx(29页珍藏版)》请在冰点文库上搜索。

C语言循环例题.docx

C语言循环例题

1、

//输出a与b之间的所有素数,10个素数为一行输出

#include

#include

#include

intpanDuanSuShu(intx)//判断x就是否就是素数

{

inti,m,flag;//flag为1表示就是素数,flag为0表示不就是素数

m=(int)sqrt(x);

if(x==2)

{flag=1;}

else

{

for(i=2;i<=m;i++)

{

if(x%i==0)

{

flag=0;

break;

}

}

if(i>m)

{flag=1;}

}

returnflag;

}

intshuChuSuShu(inta,intb)

{

inti,k=0;//i就是循环变量,k表示已经输出了k个素数

for(i=a;i<=b;i++)

{

if(panDuanSuShu(i)==1)

{

printf("%6d",i);

k++;

if(k%10==0)

{printf("\n");}

}

}

printf("\n");

returnk;

}

intmain()

{

inta,b,t;

printf("输入a与b,以便求a与b之间的所有素数\n");

scanf("%d%d",&a,&b);

while(a<2||b<2)

{

printf("重新输入n与m:

");

scanf("%d%d",&a,&b);

}

if(a>b)

{t=a;a=b;b=t;}

printf("%d与%d之间共有%d个素数",a,b,shuChuSuShu(a,b));

printf("\n\n");

return0;

}

2、

//用户输入2个数,输出这2个数之间所有的超素数

//超素数(质数)的概念:

7193就是素数,719就是素数,71就是素数,7就是素数,则7193就是素数

#include

#include

#include

intisPrime(intn)//判断某数就是否就是素数

{

inti,f,m=(int)sqrt(n);

if(n==1)f=0;

else

{

for(i=2;i<=m;i++)

{

if(n%i==0)

break;

}

if(i>m)f=1;

elsef=0;

}

returnf;

}

intsupperPrime(intn)//判断某数就是否就是超素数

{

intt=n;

while(t>0)

{

if(isPrime(t)==1)

t=t/10;

else

break;

}

if(t==0)return1;

elsereturn0;

}

voidprintSupperPrime(inta,intb)//输出a到b之间所有的超素数

{

inti,m=0;

for(i=a;i<=b;i++)

{

if(supperPrime(i))

{printf("%8d",i);

m++;

if(m%5==0)

printf("\n");

}

}

printf("\n");

}

intmain()

{

inta,b,t;

printf("inputa,b:

");

scanf("%d%d",&a,&b);

while(a<2||b<2)

{

printf("inputa,b:

");

scanf("%d%d",&a,&b);

}

if(a>b){t=a;a=b;b=t;}

printSupperPrime(a,b);

printf("\n");

//system("pause");

return0;

}

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<=100;b++)

for(intc=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++;

}

returnx;

}

intmain()

{

printf("\n\n100以内的勾股数共有:

%d个。

\n",gouGuShu());

//system("pause");

return0;

}

4、

//有一堆桃子,第一天猴子吃掉桃子的一半又多吃1个,第二天猴子再吃掉桃子的一半又多吃一个

//第10天只剩下1个桃子,问最初有多少个桃子

#include

#include

inthouZiChiTaoZi()

{

intday=10,x1,x2=1;

while(day>1)

{

x1=(x2+1)*2;

x2=x1;

day--;

}

returnx1;

}

intmain()

{

printf("最初桃子有%d个\n",houZiChiTaoZi());

//system("pause");

return0;

}

5、

//由用户输入一个年份,再输入该年的元旦就是星期几,再输入一个月份,则打印输出该月的日历。

//例如:

输入年份就是2000年,输入元旦为星期6,输入月份为3,则输出:

//3月日一二三四五六

//1234

//567891011

//12131415161718

//19202122232425

//262728293031

#include

#include

intLeepYear(inty)//判断某年就是否就是闰年

{

if(y%4==0&&y%100!

=0||y%400==0)

return1;

else

return0;

}

intHowManydays(inty,intm)//判断该月有多少天

{

intthisMonthDays;

switch(m)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

thisMonthDays=31;break;

case4:

case6:

case9:

case11:

thisMonthDays=30;break;

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)

{

case1:

days=0;break;

case2:

days=31;break;

case3:

days=31+febDay;break;

case4:

days=2*31+febDay;break;

case5:

days=2*31+30+febDay;break;

case6:

days=3*31+30+febDay;break;

case7:

days=3*31+2*30+febDay;break;

case8:

days=4*31+2*30+febDay;break;

case9:

days=5*31+2*30+febDay;break;

case10:

days=5*31+3*30+febDay;break;

case11:

days=6*31+3*30+febDay;break;

case12:

days=6*31+4*30+febDay;break;

}

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("\n\n");

printf("%4d月日一二三四五六\n",month);

printf("%6c",'');

d=1;

for(i=0;i

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("\n\n");

}

intmain()

{

intyear=-20,month=13,week=9;

while(year<0)

{

printf("请输入年份:

");

scanf("%d",&year);

}

while(month>12||month<1)

{

printf("请输入月份:

");

scanf("%d",&month);

}

while(week>7||week<1)

{

printf("该年的元旦就是星期几?

");

scanf("%d",&week);

}

shuChuRiLi(year,month,week);

system("pause");

return0;

}

6、

//输出三种形式的九九乘法口诀表

#include

#include

voidchengFaKouJueBiao1()

{

inti,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("\n\n");

}

voidchengFaKouJueBiao2()

{

inti,j;

printf("*");

for(i=1;i<=9;i++)

printf("%4d",i);

printf("\n");

for(i=1;i<=9;i++)

{

printf("%2d",i);

for(j=1;j<=i;j++)

{

printf("%4d",i*j);

}

printf("\n");

}

printf("\n\n");

}

voidchengFaKouJueBiao3()

{

inti,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("\n\n");

}

intmain()

{

chengFaKouJueBiao1();

chengFaKouJueBiao2();

chengFaKouJueBiao3();

//system("pause");

return0;

}

7、

//用户输入三角形的高度,输出由*构成的三角形。

#include

#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("*");

printf("\n");

}

printf("\n\n");

}

intmain()

{

intn;

printf("输入三角形的行数:

");

scanf("%d",&n);

while(n<2)

{

printf("输入三角形的行数:

");

scanf("%d",&n);

}

shuChuSanJiaoXing(n);

//system("pause");

return0;

}

8、

//输出边长为n的空心菱形

#include

#include

voidshuChuKongXinlingXing(intn)

{

inth,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++)

printf("");

printf("*");

for(k=1;k<=2*n-2*h-3;k++)

printf("");

printf("*");

printf("\n");

}

for(k=1;k<=n;k++)

printf("");

printf("*");

printf("\n\n");

}

intmain()

{

intn;

printf("输入菱形的边长:

");

scanf("%d",&n);

while(n<2)

{

printf("菱形边长必须大于2,请重新输入菱形的边长:

");

scanf("%d",&n);

}

shuChuKongXinlingXing(n);

//system("pause");

return0;

}

9、

#include

#include

//输出所有三位的水仙花数

voidsanWeiShuiXianHuaShu()

{

inti,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);

}

}

//输出所有四位的水仙花数

voidsiWeiShuiXianHuaShu()

{

inti,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*c+d*d*d*d)

printf("%6d",i);

}

}

intmain()

{

printf("三位的水仙花数有:

\n");

sanWeiShuiXianHuaShu();

printf("\n\n");

printf("四位的水仙花数有:

\n");

siWeiShuiXianHuaShu();

printf("\n\n");

//system("pause");

return0;

}

10、

//一个整数的所有因子之与等于该数,则这个数就是完数。

//输出1000以内的完数及其因子

#include

#include

voidwanShu()

{

inti,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)

{printf("%5d:

itsfactorsare",i);

for(k=1;k<=i-1;k++)

{

if(i%k==0)printf("%d,",k);

}

printf("\n");

}

}

}

intmain()

{

wanShu();

printf("\n");

system("pause");

return0;

}

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

#include

voidzhenTanDuanAn()

{

inta,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;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罪犯\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);

}

}

}

intmain()

{

zhenTanDuanAn();

//system("pause");

return0;

}

12、

//一学校有4位学生中的1位做了好事不留名,

//表扬信来了之后,校长问这4位就是谁做了好事。

//A说:

不就是我;B说:

就是C;C说:

就是D;D说:

她胡说。

//已知3个人说的就是真话,一个人说的就是假话。

//请编程找出做好事的人。

#include

#include

voidshuiZuoLeHaoShi()

{

intk,f=0;//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)

{

printf("做好事者为%c",char(64+k));

f=1;//f=1表示找到了

}

}

if(f!

=1)//如果循环结束后没有找到

printf("找不到!

\n");

}

intmain()

{

shuiZuoLeHaoShi();

printf("\n");

//system("pause");

return0;

}

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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2