# 循环结构习题讲解

1. 输入N, 打印下列高为N的等腰三角形

***
*****
*******
*********
***********

#include "stdio.h"

main()

{

int n,i,j;

printf("Please Input N: ");

scanf("%d",&n);

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

{

for (j=n-1;j>=i;j--)

printf(" ");

for (j=1;j<=2*i-1;j++)

printf("*");

printf("/n");

}

printf("/n");

}

2依次输入10个数，打印其中最大的数。

#include <math.h>

main()

{

float i,a,max;

printf ("please input the frist number");

scanf ("%f",&max);

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

{

printf ("please input the next number");

scanf ("%f",&a);

if (a>max)

max=a;

}

printf ("the max in the 10 number is %f",max);

}

3．输入两个正整数m,n，求其最大公约数和最小公倍数。

#include "stdio.h"

main()

{

int t,m,n,m0,n0;

printf("Please Input two integer: ");

scanf("%d%d",&n,&m);

m0=m; n0=n;

if (m<n)

{

t=m;

m=n;

n=t;

}

t=m%n;

while (t)

{

m=n;

n=t;

t=m%n;

}

printf("The two integer is %d and %d/n",m0,n0);

printf("The maximum common divisor is %d/n",n);

printf("The minimum common multiple is %d/n",m0*n0/n);

}

#include "stdio.h"

main()

{

int m,n,max,min,i;

printf("Please Input m & n : ");

scanf("%d%d",&m,&n);

if (m<=n)

{

min=n;

max=m;

}

else

{

min=m;

max=n;

}

for (i=min;(i%m!=0)||(i%n!=0);i++);

min=i;

for (i=max;(m%i!=0)||(n%i!=0);i--);

max=i;

printf("The min is: %d/n",min);

printf("The max is: %d/n",max);

}

4S = a + aa + aaa + aaaa + ……

#include "stdio.h"

main()

{

int n,a,i;

long sum=0,coef,an=0;

printf("Please Input n & a(a must between 1-9): ");

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

while ((a<1)||(a>9))

{

printf ("/na out of range, reInput a between 1-9:");

scanf("%d",&a);

}

for (i=1,an=0; i<=n; i++)

{

an=an*10+a;

sum=sum+an;

}

printf("/n");

printf("The result is %ld/n",sum);

}

51+2+ …… +n

main()

{

long int a,b=1,x=0;

int n;

printf("****work  **  *****/n   input the number:");

scanf("%d",&n);

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

{b=b*a;

x=x+b;

}

}

6. 打印出所有的“水仙花”数，所谓“水仙花”数是指一个3位数，其各位数字立方和等于该数本身，例如153=13+53+33153是一个水仙花数。

#include "stdio.h"

main()

{

int n,n1,n2,n3,m,t=0;

for (n=100;n<=999;n++)

{

n3=n/100;

n2=(n-n3*100)/10;

n1=n%10;

if (n==(n1*n1*n1+n2*n2*n2+n3*n3*n3))

{

printf("%8d",n);

t++;

if (t%5==0)

printf("/n");

}

}

printf("/n");

}

#include "stdio.h"

main()

{

int n,n1,n2,n3,m;

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

for (n2=0;n2<10;n2++)

for (n3=0;n3<10;n3++)

{

n = n1*n1*n1+n2*n2*n2+n3*n3*n3;

m = n1*100+n2*10+n3;

if (n == m)

printf("%8d",m);

}

printf("/n");

}

7. 有一分数序列2/13/25/38/513/821/13，……，求出这个数列的前n项之和。

2，每一项的数据是分数，且存在规律：后一项的分母是前一项的分子，后一项的分子是前一项分子、分母之和。

Sum 计和 （初始为0

I 循环变量

A 前一项的分子（初始为2

B 前一项的分母（初始为1

T 当前分数，存在t=(a+b)/a

main()

{

int a,b,temp,i,n;

float sum,t;

a=2;b=1;sum=t=2;

printf("Input n:");

scanf("%d",&n);

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

{

t=1.0*(a+b)/a;

sum += t;

temp=a;

a=a+b;

b=temp;

}

printf ("N=%d,Sum=%f/n",n,sum);

}

8．略

9．用二分法求下面方程在（-1010）之间的根。

#include <math.h>

main()

{float x0,x1,x2,fx0,fx1,fx2,le;

do

{printf("Enter x1 & x2: ");

scanf("%f,%f",&x1,&x2);

fx1=x1*((2*x1-4)*x1+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}

while((fx1*fx2)>0);

do

{x0=(x1+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6;

if ((fx0*fx1)<0)

{x2=x0;

fx2=fx0;

}

else

 应该是数字1，而非字母l
{x1=x0;

fx1=fx0;

}

} while(fabs(fx0)>=le-5);

printf("x=% 6.2f /n",x0);

}

UP更新不错过~
07-14 827
08-16 2308
04-22 1586
10-20 1万+
05-04 744
07-03 57
08-03 111
11-01 754
09-16 188
07-27 647

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

yaomeilan

¥2 ¥4 ¥6 ¥10 ¥20

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。