C语言打印三角形(菱形)、字符串逆序、水仙花数


前言

本文为C语言的简单习题


一、打印三角形

输入行数,在屏幕上打印出对应行数的三角形
代码:

#include<stdio.h>
void print(int n)
{
    
    
	for (int i = 1; i <= n; i++)
	{
    
    
		for (int k = 1; k <= n - i; k++)
		{
    
    
			printf(" ");
		}

		for (int j = 1; j <= 2 * i - 1; j++)
		{
    
    

			printf("*");
		}
		printf("\n");
	}
}
int main()
{
    
    
	int a = 0;
	printf("请输入一个整数:\n");
	scanf_s("%d", &a);
	print(a);
	return 0;
}

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


二、打印菱形

代码:

#include<stdio.h>
void print(int n)
{
    
    
	for (int i = 1; i <= n; i++)
	{
    
    
		for (int k = 1; k <= n - i; k++)
		{
    
    
			printf(" ");
		}

		for (int j = 1; j <= 2 * i - 1; j++)
		{
    
    

			printf("*");
		}
		printf("\n");
	}

	for (int i = n-1; i >= 1; i--)
	{
    
    
		for (int k = 0; k <= n-1 - i; k++)
		{
    
    
			printf(" ");
		}
		for (int j = 1; j <= 2 * i - 1; j++)
		{
    
    
			printf("*");
		}
		printf("\n");
	}
}
int main()
{
    
    
	int a = 0;
	printf("请输入一个整数:\n");
	scanf_s("%d", &a);
	print(a);
	return 0;
}

运行结果:

在这里插入图片描述


三、字符串逆序

代码

#include<stdio.h>
void nixu(char*a,int sz)
{
    
    
	int left = 0;
	int right = sz - 1;
	while (left<right)
	{
    
    
		int tmp = *(a+right);
		*(a + right) = *(a + left);
		*(a + left) = tmp;
		left++;
		right--;
	}
}
int main()
{
    
    

	char arr[] = "ndscsnljrginv";
	int sz = sizeof(arr) / sizeof(arr[0]);
	nixu(arr,sz);
	for (int i = 0; i < sz; ++i)
	{
    
    
		printf("%c", arr[i]);
	}
	return 0;

}

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


四、打印水仙花数

求出0~100000之间的所有“水仙花数”并输出。
代码

#include<stdio.h>
#include<math.h>
int main()
{
    
    
	
	for (int i = 0; i <100000; ++i)
	{
    
    
		int tmp = i;
		int count = 1;
		int sum = 0;
		while (tmp / 10)
		{
    
    
			count++;
			tmp = tmp / 10;
		}
		tmp = i;
		while (tmp)
		{
    
    
			sum += pow(tmp % 10, count);
			tmp = tmp / 10;
		}
		if (sum == i)
		{
    
    
			printf("%d ", i);
		}
		
	}
	
	return 0;
}

运行截图

在这里插入图片描述


总结

以上就是本文的全部内容

猜你喜欢

转载自blog.csdn.net/m0_53689542/article/details/120942329