算法的基础介绍

首先我来简单介绍一下算法是什么。

算法+数据结构=程序
数据结构是对数据的描述,在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式。
算法是计算机进行操作的步骤。

算法的特征有5个
1:有穷性:算法是有限的操作,不能是无限的。
2:确定性:每一个步骤都应该是确定的。
3:有零个或多个输入:所谓输入是执行算法时需要从外界取得必要的信息。
4:有零个或多个输出:算法的目的就是为了求解,这个解就是输出。
5:有效性:每一个步骤都应当是有效的。

接下来介绍几个简单的程序:
1.输入10个数,输出其中的最大的数

#include 

int main()
{
	int i,a[10],j;
	int max;
	printf("请输入10个数:");
	for (i = 0; i < 10;i++)
	{
		scanf("%d",&a[i]);
	}
	max = a[0];
	for (j = 1; j < 10; j++)
	{
		if (max < a[j])    //循环比较大小
		{
			max = a[j];    
		}
	}
	printf("max=%d\n",max);
	return 0;
}

2.输出100~200的素数(素数是只能被1或者该数自身整除的数)

#include 
//#include 
int main()
{
	int n,m;
	int i = 2;
	int j = 0;
	for (n = 100; n <= 200; n++)
	{
		for (m = 2; m <= n; m++)
		{
			if (n%m == 0)
			{
				//printf("不是素数!\n");
				break;
			}
		}
		if (m == n)
		{
			j++;
			printf("%4d\n",n);
		}
	}
	printf("j=%d\n",j);
	return 0;
}

3.求出两个数m和n的最大公约数和最小公倍数

#include 

int main()
{
	int x, y, z, m, n;
	printf("请输入两个数:");
	scanf("%d%d", &x, &y);
	m = x;
	n = y;
	while (y != 0)
	{
		z = x%y;
		x = y;
		y = z;
	}
	printf("最大公约数是: %d\n", x);
	printf("最小公倍数是: %d\n", m*n / x);    //最小公倍数是输入的两个数乘积除以最大公约数
	return 0;
}

程序都能进行一定的优化,比如素数的程序,了解了素数的概念后输出100~200的素数,首先可以排除偶数,因为偶数都能被2整除,所以就可以进行一定的优化。

有更好的方法欢迎改进~!

你可能感兴趣的:(C语言)