[C程序设计]第五章 循环结构程序设计

3.输入m和n,输出最大公约数和最小公倍数

#include<stdio.h>
int main()
{
	int p,r,n,m,temp;
	printf("input n and m:");
	scanf("%d%d",&n,&m);
	if(n<m)
	{
		temp=n;
		n=m;
		m=temp;
	}
	p=n*m;
	while(m!=0)
	{
		r=n%m;
		n=m;
		m=r;
	}
	printf("%d\n",n);//最大公约数
	printf("%d",p/n);//最小公倍数
	return 0;
}

4.输入字符,统计英文字母、空格、数字、其他字符

#include<iostream>
using namespace std;
int main()
{
	char x[50]={0};
	int letter=0;
	int space=0;
	int num=0;
	int other=0;
	cin.getline(x,50);
	for(int i=0;x[i]!='\0';i++)
	{
		if(x[i]>='a'&&x[i]<='z'||x[i]>='A'&&x[i]<='Z')
			letter++;
		else if(x[i]==' ')   space++;
		else if(x[i]>='0'&&x[i]<='9')  num++;
		else other++;
	}
	printf("%d\n%d\n%d\n%d\n",letter,space,num,other);
	return 0;
}

  5.求Sn

#include<stdio.h>
#include<math.h>
int main()
{
	int a,n;
	a=n=0;
	int sum_a=0;
	int sum=0;
	scanf("%d%d",&a,&n);
	for(int i=0;i<n;i++)
	{	
		sum_a+=a*pow(10,i);
		sum+=sum_a;
	}
	printf("%d",sum);
	return 0;
}

6.1!+2!+3!....+n!

#include<stdio.h>
#include<math.h>
int main()
{
	int n=0;
	int sum_n=1;
	int sum=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{	
		sum_n=sum_n*i;
		sum+=sum_n;
	}
	printf("%d",sum);
	return 0;
}

8.水仙花数

#include<stdio.h>
int main()
{
	int a,b,c;
	a=b=c=0;
	for(int num=100;num<1000;num++)
	{
		a=num/100;
		b=(num-100*a)/10;
		c=num-a*100-b*10;
		if(num==(a*a*a+b*b*b+c*c*c))
			printf("%d\n",num);
	}
	return 0;
}

9.完数

#include<stdio.h>
int main()
{
	int yinzi=0;
	for(int i=1;i<1000;i++)
	{   
		int sum=0;
		for(int j=1;j<i;j++)
		{
			if(i%j==0)  
				sum+=j;
		}
		if(sum==i)  
		{	printf("%d its factors are",i);
			for(j=1;j<i;j++)
			{
				if(i%j==0)
				{
					printf("%d ",j);
				}
			}
		printf("\n");
		}
	}
	return 0;
}

10.分数序列,求20项之和

#include<stdio.h>
int main()
{
	int n=0;
	scanf("%d",&n);
	float a=2;
	float b=1;
	float t=0;
	float sum=2;
	float result=0;
	for(int i=2;i<=n;i++)
	{
		t=b;
		b=a;
		a=a+t;
		result=a/b;
		sum+=result;
	}
	printf("%5.2f",sum);
	return 0;
}
11.100m自由落下的球,10次后的高度和经过多少米。
#include<stdio.h>
int main()
{
	int h=100;
	int sum=0;
	int n=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		h=h-h/2;
		if(i==1)
			sum+=2*h;
		if(i>1)
			sum+=4*h;	
	}	
	printf("%d\n%d\n",h,sum);
	return 0;
}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值