第五章 循环结构程序设计

 例子
求1+...+100
#include
int main(){
	int sum=0;
	int i=1;
	for(i=1;i<=100;i++) {
		sum+=i;
	}
	printf("%d\n",sum);
	return 0;
}


#include
int main(){
	int sum=0;
	int i=1;
	do{
		sum+=i;
		i++;
	}while(i<=100);
	printf("%d\n",sum);
	return 0;
}
捐款


#include
int main(){
	int sum=0;
	int i=1;
	int money=0;
	for(i=1;i<=1000;i++){
		printf("please enter money="); 
		scanf("%d",&money);
		sum+=money;
		if(sum>=100000){
			break;
		} 	
	}
	printf("人数=%d\n",i);
	printf("总计=%d\n",sum);
	printf("%d\n",sum/i);
	return 0;
}
不能被3整除
#include
int main(){
	int i=100;
	for(i=100;i<=200;i++){
		if(i%3==0){
			continue;
		}else{
			printf("%d ",i);
		}
	}
	return 0;
}
打印
#include
int main(){
	int i=1;
	int j=1;
	for(i=1;i<=4;i++){
		for(j=1;j<=5;j++){
			printf("%2d ",i*j);
		}
		printf("\n");
	}
	return 0;
}
求π
#include
#include
int main(){
	double num=1;
	double sum=0;
	double mu=1;
	int sign=1;
	while(fabs(num)>=1e-6){
		sum+=num;
		mu+=2;
		sign=-sign;
		num=sign/mu;
		
	}
	printf("π=%10.8lf",sum*4);
	return 0;
}
100~200之内的素数
#include
#include

int panduan(int n){
		int j=2;
		for(j=2;j<=(int)sqrt(n);j++){
			if(n%j==0){
				return 0;
			}
		}
		return 1;
}
int main(){
	int i=100;
	for(i=101;i<=200;i+=2){
		if(panduan(i)){
			printf("%d ",i);
	}
	} 
	return 0;
}
习题
求公约数和公倍数
#include

int gcd(int x,int y){
	return y==0?x:gcd(y,x%y);
}
int main(){
	int m,n;
	scanf("%d %d",&m,&n);
	int num=gcd(m,n);
	int lcm=m*n/num;
	printf("最大公约数为%d\n",num);
	printf("最小公倍数为%d\n",lcm);
	return 0;
}
求字符内容
#include


int main(){
	char c=0;
	int letters=0,space=0,digit=0,other=0;
	printf("请输入一行字符\n");
	while((c=getchar())!='\n'){
		if(c>='a'&&c<='z'||c>='A'&&c<='z'){
			letters++; 
		}else if(c==' '){
			space++;
		}else if(c>='0'&&c<='9'){
			digit++;
		}else{
			other++;
		}
	} 
	printf("此字符有英文字母:%d个\n空格:%d个\n数字:%d个\n其他字符:%d个\n",letters,space,digit,other);
	return 0;
}
求Sn
#include


int main(){
	int a,n;//a为一个数字 n表示a的位数
	int num=0;
	scanf("%d %d",&a,&n);
	int sum=0;
	int i=0;
	for(i=0;i
1~20
#include


int main(){
	double num=1;
	double sum=0;
	int i=0;
	for(i=1;i<=20;i++){
		num*=i;
		sum+=num;
	} 
	printf("1~20的阶乘%22.15e\n",sum); 
	return 0;
}
奇怪的题
#include


int main(){
	double k1;
	double k2;
	double k3;
	int i=0;
	for(i=1;i<=100;i++){
		k1+=i;
	} 
	for(i=1;i<=50;i++){
		k2+=(i*i);
	}
	for(i=1;i<=10;i++){
		k3+=(1.0/i);
	}
	printf("%lf\n",k1+k2+k3);
	return 0;
}
水仙花数
#include


int main(){
	int i=1;
	int j=0;
	int n=0;
	for(i=1;i<=9;i++){
		for(j=0;j<=9;j++){
			for(n=0;n<=9;n++){
			if((i*100+j*10+n*1)==(i*i*i+j*j*j+n*n*n)){
				printf("%d\n",i*100+j*10+n*1);
			}		
		}
	}
}
	return 0;
}
因数之和 
#include


int main(){
	int i=1;
	int arr[1000];
	for(i=1;i<=1000;i++){
		int j=1;
		int sum=0;
		int flag=0;	
		for(j=1;j
题10

第五章 循环结构程序设计_第1张图片

n1=2 n2=1    n3=n1+n2 n4=n1   

#include


int main(){
	int i=1;
	double c=2,cc=1,flag,sum=0;
	sum+=c/cc;
	for(i=2;i<=20;i++){
		flag=c;
		c+=cc;
		cc=flag;
		sum+=c/cc;
	}
	printf("%16.10lf",sum);
	return 0;
}
球的下落
#include


int main(){
	int i=1;
	double length=100;
	double sum=100;
	length/=2;//反弹为一半 
	while(i<10){
		sum+=length;//球升起
		sum+=length;//球落下 
		i++; 
		length/=2;//反弹为一半 
	} 
	printf("第%d次落下时共经过%lf米\n",i,sum);
	printf("第%d次落下时反弹为%lf米\n",i,length);
	return 0;
}
猴子吃桃
#include


int main(){
	int i=1,tao=1,x1,x2=1;
	for(i=1;i<=9;i++){
		x1=(x2+1)*2;
		tao+=x1; 
		x2=x1; 
	}
	printf("一共有%d个桃子",tao);
	printf("第一天吃了%d个桃子",x1); 
	return 0;
}
迭代法
#include
#include
int main(){
	double x1,x2;
	int a;
	scanf("%d",&a);
	x2=a;
	x1=0.5*(x2+a/x2);
	do{
		x2=x1;
		x1=0.5*(x2+a/x2);
	}while(fabs(x1-x2)>=1e-5);	
	printf("%d %lf\n",a,x1); 
	return 0;
}
牛顿迭代法 
#include
#include
int main(){
	double x1,x0=1.2,f,f1;
	do{
		x1=x0;
		f=2*(x1*x1*x1)-4*(x1*x1)+3*x1-6;
		f1=6*(x1*x1)-8*x1+3;
		x0= x1-(f/f1);
	}while(fabs(x0-x1)>=1e-5);
	printf("%.2lf",x0);
	return 0;
}

 

打印菱形
#include
int main(){
	int hang;
	scanf("%d",&hang);
	int i,j;
	for(i=1;i<=hang/2;i++){
		for(j=1;j<=(hang-(2*i-1))/2;j++){
			printf(" ");
		}
		for(j=1;j<=2*i-1;j++){
			printf("*");
		} 
		printf("\n");
	}
		for(i=hang/2+1;i>=1;i--){
		for(j=1;j<=(hang-(2*i-1))/2;j++){
			printf(" ");
		}
		for(j=1;j<=2*i-1;j++){
			printf("*");
		} 
		printf("\n");
	}
	return 0;
}
比赛
#include
int main(){
	int i,j,n;
	for(i='x';i<='z';i++){
		for(j='x';j<='z';j++){
			for(n='x';n<='z';n++){
				if(n=='y'&&i!='x'&&i!=j&&i!=n&&j!=n){
					printf("A:%c B:%c C:%c\n",i,j,n);
				}
			}
		}
	}
	return 0;
}

你可能感兴趣的:(算法,数据结构)