C语言练习题(四)

今日题目

1.在屏幕上打印一个半菱形,要求每行的元素个数为1,3,5,7,9,11,9,7,5,3,1。
2.求出0~999之间的所有“水仙花数”并输出。
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身
例如:153=1+5+3?,则153是一个“水仙花数”。
3. 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222

1.在屏幕上打印一个半菱形,要求每行的元素个数为1,3,5,7,9,11,9,7,5,3,1。
由题目可以知道,每一行的元素个数sum与行数n的关系是sum=2n-1,我们可以把菱形分为上下两个部分分别来打印

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
	int i = 0;
	int j = 0;
	int n = 0;
	printf("输入想打印行数: ");
	scanf("%d",&n);
	//打印上半部分
	for (i = 1; i < 2*n-1; i += 2){           //确定每行的元素个数
		for (j = 1; j <= i; j++){             //打印*号
			printf("*");
		}
		printf("\n");                          
	}
	//打印下半部分
	for (i = 2 * n - 1; i > 0; i -= 2){
		for (j = 1; j <=i; j++){
			printf("*");
		}
		printf("\n");
	}
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

2.求出0~999之间的所有“水仙花数”并输出。
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数

#include<stdio.h>
#include<stdlib.h>
int main() {
	int i ,a ,b ,c ;
	for (i = 0; i < 1000; i++) {
		a = i / 100;                   //取百位数数字
		b = i / 10 % 10;               //取十位数数字
		c = i % 10;                    //取个位数数字
		if (i == a*a*a + b*b*b + c*c*c) {
			printf("%d  ", i);
		}
	}
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述
3. 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
	int n = 0;
	int i = 0;
	int sum = 0;
	int Sn = 0;
	printf("请输入一个0-9的数: ");          //从键盘输入一个数字
	scanf("%d", &n);
	if (n >= 0 && n <= 9) {                 //输入的数字必须在0-9之间
		for (i = 0; i < 5; i++) {
			sum = n + sum * 10;
			Sn = Sn + sum ;
		}
		printf("Sn=%d\n", Sn);
	}
	else{
		printf("请重新输入\n");
	}
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值