C练习实例16-20题打卡

C练习实例16-20题打卡,第1张

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次反d多高?

思路:
    首先明晰每一次的高度和是下落加反d。然后第十次落地时的高度要在累加的高度中减去最后一次反d的高度。
代码:
#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;
}
结果:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5702626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存