C语言:作业5_20

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

#include<stdio.h>//4

int main()
{
	char c;
	printf("please intput:");
	int el = 0, sp = 0, nu = 0, other = 0;
	while ((c = getchar() )!= '\n')
	{
		if (c == '\n')
		{
			break;
		}
		if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))
		{
			el++;
		}
		else if (c >= '0' && c <= '9')
		{
			nu++;
		}
		else if (c == ' ')
		{
			sp++;
		}
		else
		{
			other++;
		}

	}
	printf("英文字母个数:=%d \n", el);
	printf("数字个数:=%d \n", nu);
	printf("空格个数:=%d \n", sp);
	printf("其它字符个数:=%d \n", other);
	return 0;
}

5.求Sn =a+aa十aa+…+a…a(n个a)之值,其中a是一个数字,n表示a的位数, 例如:2十22十222十2222十22222(此时n=5),n由键盘输人。

#include<stdio.h>//5
#include<math.h>

int main()
{
	double a, n, i;
	double sum=0.0, total = 0.0;

	printf("请输入数字a:");
	scanf_s("%lf", &a);
	printf("请输入位数n:");
	scanf_s("%lf", &n);

	for (i = 0; i < n; i++)
	{
		sum += a * pow(10, i);
		total += sum;
	}
	printf("总和为:%lf\n", total);
	return 0;
}

8.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+ 53 +33。

#include <stdio.h>//8

int main()
{
	int a, b, c, n;
	printf("3位数以内的水仙花数为:\n");
	for (n = 100; n <= 999; n++)
	{
		a = n / 100;
		b = n / 10 % 10;
		c = n % 100 % 10;
		if (n == a * a * a + b * b * b + c * c * c)
		{
			printf("%d\t", n);
		}
	}
	printf("\n");
	return 0;
}

9.一个数如果恰好等于它的因子之和,这个数就称为“完数"。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:

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

12.猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。

#include <stdio.h>//12
void main()
{
	int s = 1;
	for (int i = 1; i < 10; i++)
	{
		s = (s + 1) * 2;
	}
	printf("第1天共摘%d个桃子 \n", s);
}
//递归
#include <stdio.h>//12
int Peach_digui(int n)
{
	if (n == 1)
	{
		return 1;
	}
	else
	{
		return(Peach_digui(n - 1) + 1) * 2;
	}
}
int main()
{
	printf("%d \n", Peach_digui(10));
}

17.两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。

#include <stdio.h>//17
#include <stdlib.h>
int main()
{
	for (char i = 'X'; i <= 'Z'; i++)
	{
		for (char j = 'X'; j <= 'Z'; j++)
		{
			for (char k = 'X'; k <= 'Z'; k++)
			{ 
				if (i != j && j != k && i != k)
				{
					if (i != 'X' && k != 'X' && k != 'Z')
					{
						printf("A <====> %c, B <====> %c,C <====> %c \n", i, j, k);
					}
				}
			}
		}
	}
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值