栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C练习实例16-20题打卡

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C练习实例16-20题打卡

目录

题目16:

思路:代码:结果: 题目17:

思路:代码:结果: 题目18:

思路:代码:结果: 题目19:

思路:代码:结果: 题目20:

思路:代码:结果:

题目16:

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

思路:
    运用代余除法的思维求最大公约数。最小公倍数是两个整数之积除以最大功公约数。
代码:
#include"stdio.h"
int main()
{
	int m,n,i,j,max,min;
	scanf("%d%d",&m,&n);
	i=m>n?m:n;
	j=m 
结果: 

题目17:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

思路:
    核心在我看来就是输入的时候可以避开空格不结束输入用gets( )即可,可这是运用于已知字符串长度。若是长度未知可能getchar( )更为合适。
代码:

法一:

#include"stdio.h"
int main()
{
	int num1=0,num2=0,num3=0,num4=0,i=0;
	char a[80];
	gets(a);
	while(*(a+i)!='')
	{
		if(*(a+i)>='a'&&*(a+i)<='z')
		num1++;
		else if(*(a+i)>='A'&&*(a+i)<='Z')
		num1++;
		else if(*(a+i)>='0'&&*(a+i)<='9')
		num2++;
		else if(*(a+i)==' ')
		num3++;
		else
		num4++;
		i++;
	}
	printf("字母个数=%dt数字个数=%dt空格个数=%dt其他字符个数=%d",num1,num2,num3,num4);
	return 0;
}

法二:

#include"stdio.h"
int main()
{
	int num1=0,num2=0,num3=0,num4=0,i=0;
	char a;
	while((a=getchar())!='n')
	{
		if(a>='a'&&a<='z')
		num1++;
		else if(a>='A'&&a<='Z')
		num1++;
		else if(a>='0'&&a<='9')
		num2++;
		else if(a==' ')
		num3++;
		else
		num4++;
		i++;
	}
	printf("字母个数=%dt数字个数=%dt空格个数=%dt其他字符个数=%d",num1,num2,num3,num4);
	return 0;
}
结果:


题目18:

求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

思路:
    首先明晰已知的数,即a和n;这给公式的计算是一个累加的过程,这个公式的每一项也是一个累加的过程。把累加的过程弄清楚就行。
代码:
#include"stdio.h"
int main()
{
	int a,s=0,n,i;
	scanf("%d%d",&a,&n);
	int b=a;
	for(i=1;i<=n;i++)
	{
		s+=a;
		b=b*10;
		a+=b;
	}
	printf("%d",s);
	return 0; 
}
结果:

题目19:

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

思路:
    完数的因子相加计算中不包含其本身。找出所有因子累加计算,看结果是否与本身相等即可。
代码:
#include"stdio.h"
int main()
{
	int a,i,s;
	for(a=2;a<=1000;a++)
	{
		s=0;
		for(i=1;i 
结果: 

题目20:

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

思路:
    首先明晰每一次的高度和是下落加反弹。然后第十次落地时的高度要在累加的高度中减去最后一次反弹的高度。
代码:
#include"stdio.h"
int main()
{
	float a=100,s=0,i=a*1/2;
	int k;
	for(k=0;k<10;k++)
	{
		s+=a+i;
		a=i;
	    i=i*1/2;
	}
	printf("%ft%f",s-a,a);
	return 0;
}
结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702523.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号