第五章 循环结构程序设计
1.例5.1 求1+2+3+····+100之和
#include <stdio.h>
int main()
{
int i = 1, sum = 0;
while ( i <= 100 )
{
sum += i;
i++;
}
printf( "1+2+3+···+100=%d\n", sum );
}
运行结果如下:
2.例5.4 在全系1000名学生中进行慈善募捐,当总数额达到十万元时就结束。统计此时捐款人数以及每人平均捐款数目。
#include <stdio.h>
#define SUM 100000
int main()
{
float a, b, t;
int i;
for ( i = 1, t = 0; i <= 1000; i++ )
{
printf( "please enter amount:" );
scanf( "%f", &a );
t = t + a;
if ( t >= SUM )
break;
}
a = t / i;
printf( "%d\n%10.2f\n", i, a );
}
运行结果如下:
3.例5.5 要求输出100~200的不能被三整除得数。
#include <stdio.h>
int main()
{
int i;
for ( i = 100; i <= 200; i++ )
{
if ( i % 3 == 0 )
continue;
printf( "%d\t", i );
}
printf( "\n" );
}
运行结果如下:
4.例5.6 输出4*5矩阵
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
#include <stdio.h>
int main()
{
int i, j, n = 0;
for ( i = 1; i <= 4; i++ )
for ( j = 1; j <= 5; j++, n++ )
{
if ( n % 5 == 0 )
printf( "\n" );
printf( "%d\t", i * j );
}
printf( "\n" );
}
运行结果如下:
5.例5.7用公式求出pi值。
#include <stdio.h>
#include <math.h>
int main()
{
int sign = 1;
double pi = 0.0, n = 1.0, term = 1.0;
while ( fabs( term ) > 1e-6 )
{
pi += term;
n += 2;
sign = -sign;
term = sign / n;
}
pi *= 4;
printf( "pi=%10.8f\n", pi );
}
运行结果如下:
6.例5.11 翻译电码。
#include <stdio.h>
int main()
{
char i;
i = getchar();
while ( i != '\n' )
{
if ( (i > 'a' && i <= 'z') || (i >= 'A' && i <= 'Z') )
{
if ( (i >= 'W' && i <= 'Z') || (i >= 'w' && i <= 'z') )
i = i - 22;
else
i = i + 4;
}
printf( "%c", i );
i = getchar();
}
printf( "\n" );
}
运行结果如下:
7. 水仙花数问题。
#include <stdio.h>
int main()
{
int i, j, k, l, m;
scanf( "%d", &i );
j = (i / 100) * (i / 100) * (i / 100);
k = (i / 10 / 10) * (i / 10 / 10) * (i / 10 / 10);
l = (i % 10) * (i % 10) * (i % 10);
m = j + k + l;
if ( m == i )
printf( "该数为水仙花数\n" );
else
printf( "该数不为水仙花数\n" );
}
运行结果如下:
8.三角塔问题。
#include<stdio.h>
int main()
{
int i,j,k;
for(i=0;i<=4;i++)
{
for(j=0;j<=3-i;j++)
{printf(" ");
}
for(k=0;k<=2*i;k++)
{printf("*");
}
printf("\n");
}
}
运行结果如下: