(C语言)经典例题之特殊整数求和与方形图案

        这次让小编带大家探索特殊整数求和与方形图案

1特殊整数求和9

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n, m = 0, a, j, k = 0, l = 0, s = 0;
//定义变量
	int arr[1000] = { 0 };
//初始化数组为0;将符合题目的数存进数组,并设置l为计数器,k是数组下标
	scanf("%d", &n);
	int i = 99;
//99之后才会有整数有两个9以上
	for (i = 99; l < n; i++)
	{
		a = i;
		while (a)
		{
			j = a % 10;
			a = a / 10;
			if (j == 9) m++;
//判断
		}
//对10取余,并且每轮除10
		if (m >= 2)
		{
			arr[k] = i;
			l++;
			k++;
		}
		m = 0;
	}
	for (i = 0; i < n; i++)
		s = s + arr[i];
//s计算每轮的和
	printf("%d ", s);

	return 0;
}

                                        2回文整数求和(写函数求解)

#include<stdio.h>
//写一个回文函数,判断是否是回文,如果是,return 1;
int huiwen(int n)
{
	int t, m = 0;
	t = n;
//t代替n值
	do
	{
		m = m * 10 + t % 10;
		t = t / 10;
	} while (t != 0);
// do while 来先判断是否是回文
//因为0到9也是回文,所以要先做循环,再判断
	if (m == n) return 1;
	else return 0;
}
int main()
{
	int n, i, sum=0;
	int l = 0;
	scanf("%d", &n);
//l当计数器
	for (i = 1; l < n; i++)
	{
		if (huiwen(i))
		{
			sum = sum + i;
			l++;
		}
	}
	printf("%d ", sum);
	return 0;
}

                                         3输出方形图案

//输出方形图案,可以用二维数组法,也可以用循环输出;下次的旋转百花就一定要用二维数组
#include<stdio.h>
int main()
{
	int i, j, n, a, k, y;
	scanf("%d", &n);
	a = n;
i代表行数,j代表列数
	for (i = 0; i < a; i++)
	{
		for (j = 0; j < i; j++)
//ASCII码中90就代表Z
//当列数j大于26时,需要控制它,折回来取A
			printf("%c", 90 - j % 26);
		for (k = 0; k < 2 * n - 1; k++)
			printf("%c", 90 - i % 26);
		y = i;
		for (j = 2 * n - 1; j > 2 * n - 1 - i; j--)
		{
			printf("%c", 90 - ((y - 1) % 26));
			y--;
		}
		printf("\n");
		n--;
	}
//四层for循环打印上部分
	for (i = a - 1; i > 0; i--)
	{
		for (j = 0; j < i; j++)
			printf("%c", 90 - j % 26);
		for (j = i; j < 2 * a - 1 - i; j++)
			printf("%c", 90 - ((i - 1) % 26));

		y = i;
		for (j = 2 * a - 1 - i; j < 2 * a - 1; j++)
		{
			printf("%c", 90 - ((y - 1) % 26));
			y--;
		}
		printf("\n");
	}
	return 0;
}

                                4输出菱形

#include<stdio.h>
int main()
{
	char a = 'Z';
	int n, i, j, k;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		for (j = 0; j <= 2*n-2+2*i; j++)
		{
			if (j == 2 * n - 2 - 2 * i || j == 2 * n - 2 + 2 * i)
			{
				printf("%c", a);
				a--;
				if (a < 65) a = 90;
			}
			else
			{
				printf(" ");
			}
		}
		printf("\n");
	}
	for (i = n - 2; i >= 0; i--)
	{
		for (j = 0; j < 2*n+2*i-1 ; j++)
		{
			if (j == 2 * n-2 - 2 * i || j == 2 * n - 2 + 2 * i)
			{
				printf("%c", a);
				a--;
				if (a < 65) a = 90;
			}
			else printf(" ");
		}
		printf("\n");
	}

	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_62662919/article/details/121345579
今日推荐