【C语言---2】一些练习题

本文介绍了C语言中的三种经典编程案例:打印特定图形、查找100-999间的水仙花数及计算Sn=a+aa+aaa+aaaa+aaaaa的前五项之和。通过对这些案例的解析,读者可以掌握如何运用C语言实现不同类型的编程任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打印图形:

思路分析:
找出规律,每行怎么打印,第一行到中间位置先打的空格数量变化
从上到下,打印到中间位置之后,倒过来在打印一遍,由于中间位置已经打印,所以注意a的起始值

代码示例:

#include<stdio.h>
#include<stdlib.h>

int main()
{
	 int a, b,c;
	 for (a=1; a <= 5; ++a)
	 {
		  for (b = 1; b <= 5-a; ++b)//每行打的空格数5-i个
		  {
			   putchar(' ');//打印空格
		  }
		  for (b=1; b <= 2 * a - 1; ++b)//每行打印的*数量满足2*a-1
		  {
			   putchar('*');//打印*
		  }
		  putchar('\n');
	  }
	 for (a = 4; a >= 1; --a)//倒着打印,从第四行打,第五行重复,所以不打印
	 {
		  for (b = 1; b <= 5 - a; ++b)
		  {
			   putchar(' ');
		  }
		  for (b = 1; b <= 2 * a - 1; ++b)
		  {
			   putchar('*');
		  }
		  putchar('\n');
	 }
	system("pause");
	return 0;
}

打印100-999之间的水仙花数:

思路分析:
使用遍历,把每一个数都拿到,然后分别取出个位十位和百位,此题只需要打印3位数内的水仙花数
所以只需要计算个位十位百位的立方之和是不是等于原数,如果等于,则是水仙花数

代码示例:

#include<stdio.h>
#include<stdlib.h>

int main()
{
	 int a, b, c, d;
	 for (a = 100; a <1000; ++a)
	 {
		  b = a % 10;//表示a的个位数
		  c = a / 10 % 10;//表示a的十位数
		  d = a / 100;//表示a的百位数
		  int sum = b*b*b + c*c*c + d*d*d;
		  if (sum == a)//判断是否是水仙花数
		  {
			   printf("%d\n",a);//将水仙花数打印下来
		  }
	 }
	 system("pause");
	 return 0;
}

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字

例如:2+22+222+2222+22222

思路分析:
迭代法的应用,可以说是公式一般的代码

代码示例:

#include<stdio.h>
#include<stdlib.h> 

int main()
{
	 int a;
	 int tmp = 0;
	 int sum = 0;
	 scanf("%d", &a);
	 for (int i = 1; i < 6 ; ++i)
	 {
		  tmp = tmp * 10 + a;
		  sum+=tmp;
	 }
	 printf("sum=%d", sum);
	 system("pause");
	 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值