第五章循环结构程序设计
1.用for循环语句编程输出1~20之间的所有整数,两数之间以空格分隔。
#include<stdio.h>
void main()
{
int i;
for(i=1;i<=20;i++)
printf("%d ",i);
printf("\n");
}
2.用for循环语句编程输出20~1之间的所有整数,两数之间以空格分隔。
#include<stdio.h>
void main()
{
int i;
for(i=20;i>=1;i--)
printf("%d ",i);
printf("\n");
}
3.用for循环语句编程输出A~Z之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。
#include<stdio.h>
void main()
{
char c;
for(c='A';c<='A'+25;c++)
{
putchar(c);
printf(" ");
}
}
4.输出100~200之间所有能被3和7整除的数(每行输出4个数)。
#include<stdio.h>
void main()
{
int i,j=0;
for(i=100;i<=200;i++)
{
if(i%21==0)
{ j++;
printf("%12d",i);
if(j%4==0) printf("\n");
}
}
}
5.输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个数)。
#include<stdio.h>
void main()
int i,j=0;
for(i=1;i<=1000;i++)
{
if((i%3==2)&&(i%5==3)&&(i%7==2))
{ j++;
printf("%12d",i);
if(j%5==0) printf("\n");
}
}
}
6.先读入一个正整数n,然后计算并显示前n个偶数的和。
例如n为5,则求2+4+6+8+10的值,即sum=30。
#include<stdio.h>
void main()
{
int i,n,sum=0;
printf("Please enter an integer n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=(2*i);
printf("sum=%d\n",sum);
7.计算S=1+1/2+1/3+1/4+…+1/200的值并输出。
#include<stdio.h>
void main()
{
int i;
float S=0.0;
for(i=1;i<=200;i++)
S=S+1.0/i;
printf("S=%f\n",S);
}
8.计算1-3+5-7+…-99+101的值。
#include<stdio.h>
void main()
{
int i,sum=0;
for(i=0;i<=50;i++)
{
if(i%2==0) sum+=2*i+1;
else sum-=2*i+1;
}
printf("sum=%d\n",sum);
9.输入6个整数并显示其平均值。
#include<stdio.h>
void main()
{
int num,sum=0,i;
float avg;
printf("Please enter 6 integers:");
for(i=1;i<=6;i++)
{
scanf("%d",&num);
sum+=num;
}
avg=sum/6.0;
printf("avg=%f\n",avg);
}
10.输出Fibonacci数列的前几项,直到该项的值大于10000为止(每行输出5项)。
Fibonacci数列为1,1,2,3,5,8,13,21,34,…。
即第一项和第二项为1,其他项为前两项之和。
#include<stdio.h>
void main()
int f1=1,f2=1,f3=2,i=3;
printf("%d\t%d\t%d\t",f1,f2,f3);
while(f3<=10000)
{
f1=f2;f2=f3;
f3=f1+f2;
printf("%d\t",f3);
i++;
if(i%5==0) printf("\n");
}
}
11.输出10000至99999中所有的回文数(回文数是指从左到右读与从右到左读都一样的正整数,如11,22,3443,94349等)。
#include<stdio.h>
void main()
{
long i;
int ge,shi,qian,wan,k=0;
for(i=10000;i<=99999;i++)
{
ge=i%10; wan=i/10000;
shi=i/10%10; qian=i/1000%10;
if(ge==wan&&shi==qian)
{
k++;
printf("%12d",i);
if(k%5==0) printf("\n");
}
}
}
12.找出所有“水仙花数”。
所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如,153是水仙花数,因为153=1^3+5^3+3^3.
#include<stdio.h>
void main()
{
int i,ge,shi,bai;
for(i=100;i<=999;i++)
{
ge=i%10;
shi=i/10%10;
bai=i/100;
if(i==(ge*ge*ge+shi*shi*shi+bai*bai*bai))
printf("%d\t",i);
}
}
13.输出10~100之间所有各位数之积大于各位数之和的数,例如23,因为2*3>2+3。
#include<stdio.h>
void main()
{
int i,ge,shi;
for(i=10;i<=99;i++)
{
ge=i%10; shi=i/10;
if((ge*shi)>(ge+shi))
printf("%d\t",i);
}
}
14.输入一个整数,计算该整数的位数及各位之和。
#include<stdio.h>
void main()
{
int num=0,sum=0,i;
printf("Please enter an integer:");
scanf("%d",&i);
if(i<0) i=-i;
do
{
sum+=i%10;
num++;
i=i/10;
} while(i);
printf("sum=%d,num=%d\n",sum,num);
}
(注:文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)。