C语言 经典题目解析(正在更新)

文章目录

  • 循环结构程序设计(一)
  • 循环结构程序设计(二)
    • 无暇素数
    • 迭送求解平方根
  • 数组
    • 完全数

循环结构程序设计(一)

C语言 经典题目解析(正在更新)_第1张图片
解析

#include 
int main()
{
	for (int i = 1; i <= 9; ++i)
		printf("%-3d ", i);
	printf("\n");
	for (int i = 1; i <= 9; ++i)
		printf("----");
	printf("\n");
	for (int i = 1; i <= 9; ++i)
	{
		for (int k = 1; k < i; ++k)
			printf("    ");
		for (int j = i; j <= 9; ++j)
			printf("%-3d ", i * j);
		printf("\n");
	}
	return 0;
}

循环结构程序设计(二)

无暇素数

题目:找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。
解析

#include 
int main()
{
	int flag = 1;
	for (int i = 100; i < 999; ++i)
	{

		for (int j = 2; j < i; ++j)
		{
			if (!(i % j))
			{
				flag = 0;
				break;
			}
		}
		if (flag)
		{
			int k = ((i % 100) % 10) * 100 + ((i % 100) - ((i % 100) % 10)) + (i / 100);
			for (int j = 2; j < k; ++j)
			{
				if (!(k % j))
				{
					flag = 0;
					break;
				}
			}
			if (flag) printf("%d是个无瑕数\n", i);
			else flag = 1;
		}
		else flag = 1;

	}
}

迭送求解平方根

题目:3)用迭代法求某数a的平方根。平方根的迭代公式如下:

xn+1=(xn+a/xn)/2; 设x0=a/2;

当迭代相邻两项差的绝对值小于10-5时,迭代结束。
解析

#include 
int main()
{
	double a = 4;
	double ax = a/2, bx = 0;
	while (1)
	{				
		bx = (ax + (a / ax)) / 2;
		if (bx - ax <0.00001 && bx - ax >-0.00001)
		{
			printf("%f的平方根为%f", a, bx);
			break;
		}
		else ax = bx;		
	}
}

数组

完全数

题目:编程找出 1000 以内的所有完全数,并输出使该数成为完全数的因子。(例如6=1+2+3。按照6, its factors are 1 2 3格式输出)
解析

#include 
int main()
{
	int data[300];
	for (int i = 2; i <= 1000; ++i)
	{
		int cnt = 0;
		for (int j = 1; j <= i; ++j)if (!(i % j))data[cnt++] = j;
		int sum = 0;
		for (int j = 0; j < cnt; ++j)sum += data[j];
		sum -= i;
		if (sum == i)
		{
			printf("%d, its factors are ", i);
			for (int j = 0; j < cnt; ++j)
				printf("%d ", data[j]);
			printf("\n");
		}		
	}
	return 0;
}

你可能感兴趣的:(学习日志,c语言,算法,c++)