欢迎光临散文网 会员登陆 & 注册

C语言练习

2022-10-16 22:41 作者:沐笙--ms  | 我要投稿


[例5.10] 输入5个成绩数据求平均成绩。对非法成绩(不在[0,100]之间)数据要求重新输入。 


main()

{

float x,s=0;

int i=1;

while(i<=5)

{ printf("输入第%d个成绩:",i);

scanf("%f",&x);

if(x<0 || x>100)continue;

s+=x;

i++;

}

printf("平均成绩为 %5.1f\n",s/5);

}

[例5.11]  用双重循环改写例5.3求1!+2!+……+5!之和的程序


main()

{ int i,j,p,s=0;

for(i=1;i<=5;i++) /* 外循环 */

{ p=1;

for(j=1;j<=i;j++) /* 内循环 */

p=p*i;

s=s+p;

}

printf("Sum=%d\n",s);

}

[例5.12] 打印所示的三角形图案。

             *

            ***

           *****

          *******

         *********


main()

{ int i,j;

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

{ for(j=1;j<=i;j++)  printf(" ");

for(j=1;j<=i;j++)  printf("*");

printf("\n");

}

}

[例5.13] 人口增长问题。按年2%的增长速度,现有12亿人,多少年后人口将达到或超过14亿。


main()

{

int n=0;

float m=12;

do{

m=m*1.02;

n++;

}while(m<14);

printf("%d年后人口将超过14亿\n",n);

}

[例5.14]  验证素数。


main()

{ int m,n;

printf("输入一个正整数:");

scanf("%d",&m);

for(n=2;n<=m-1;n++) /* n<=m-1可以写成n<m */

   if(m%n==0)break;

if(n<m)

   printf("%d不是素数\n",m);

else

   printf("%d是素数\n",m);

}


更高效的算法:


#include <math.h>

main()

{ int m,n;

printf("输入一个正整数:");

scanf("%d",&m);

for(n=2;n<=sqrt(m);n++)

if(m%n==0)break;

if(n<=sqrt(m))

   printf("%d不是素数\n",m);

else

   printf("%d是素数\n",m);

}

[例5.15] 打印100~200之间的全部素数,每行10数据。


#include <math.h>

main()

{ int m,n,k,i=0;

for(m=100;m<=200;m++)

{ k=sqrt(m);

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

   if(m%n==0)break;

if(n>k)

{  printf("%4d",m);

   i++;

   if(i%10==0)printf("\n");

}

}

printf("\n");

}

[例5.16] 百钱买百鸡。


   这是《算经》中的一题:

     鸡翁一值钱五,

     鸡母一值钱三,

     鸡雏三值钱一。

     百钱买百鸡,问鸡翁、母、雏各几何?


main()

{ int cocks,hens,chicks;

printf("Cocks\tHens\tChicks\n");

for(cocks=1;cocks<=18;cocks++)

for(hens=1;hens<=32;hens++)

{ chicks=100-cocks-hens;

if(5.0*cocks+3.0*hens+chicks/3.0==100)

printf("%d\t%d\t%d\n",cocks,hens,chicks);

}

}


C语言练习的评论 (共 条)

分享到微博请遵守国家法律