C语言基础 - 20230430

一.练习

1). 打印字母图形

int main(int argc, const char *argv[])
{
	int beginLetter = 'F';
	int endLetter = 'A';
	int offset = beginLetter - endLetter;
	for (int i=beginLetter; i>= endLetter; i--) {
		int currentOffset = i - endLetter;
		for (int j=0; j<(offset-currentOffset); j++) {
			printf("_");
		}
		for (int j=beginLetter; j>=(beginLetter-(offset- currentOffset)); j--) {
			printf("%c", j);
		}

		printf("\n");
	}
	

	return 0;
}

效果展示:
在这里插入图片描述

2). 输出1000-10000中的四叶玫瑰数(四叶玫瑰数,各位数字的四次方和等于其本身)

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

#define SPLIT_NUMBER(num, index)(num/index%10)

int main(int argc, const char *argv[])
{
	for (int i=1000; i<=10000; i++) {
		int ge = SPLIT_NUMBER(i, 1);
		int shi = SPLIT_NUMBER(i, 10);
		int bai = SPLIT_NUMBER(i, 100);
		int qian = SPLIT_NUMBER(i, 1000);
		if (pow(ge, 4) + pow(shi, 4) + pow(bai, 4) + pow(qian, 4) == i) {
			printf("%d是四叶玫瑰数\n", i);
		}
	}

	return 0;
}

展示结果:
在这里插入图片描述

3). 有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?

结果展示:

#include <stdio.h>
int main(int argc, const char *argv[])
{
	for (int i=1; i<= 4; i++) {
		for (int j=1; j<=4; j++) {
			for (int k=1; k<= 4; k++) {
				printf("%d  ", i*100, j*10, k);
			}
		}
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

4). 输入三个整数x、y和z,请把这三个数由小到大输出

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a, b, c;
	printf("请输入三个数:");
	scanf("%d%d%d", &a, &b, &c);

	int min = a <= b ? a : b;
	min = min <= c ? min : c;

	int max = a >= b ? a : b;
	max = max >= c ? max : c;

	int mid = a + b + c - max - min;

	printf("从小到大输出结果是:%d %d %d\n", min, mid, max);
	return 0;
}

展示结果:
在这里插入图片描述

5). 思考交换两个数的方法

#include <stdio.h>
int main(int argc, const char *argv[])
{
	{
		int temp, a = 1, b = 2;
		temp = a;
		a = b;
		b = temp;
		printf("a === %d, b === %d\n", a, b);
	}

	{
		int a = 1, b = 2;
		a = a + b;
		b = a - b;
		a = a - b;
		printf("a === %d, b === %d\n", a, b);
	}

	{
			//异或
			int a = 1, b= 2;
			a = a^b;
			b = a^b;
			a = a^b;
	}

	return 0;
}

结果展示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值