C语言实验报告3_56学时

实验报告三

实验题目(2)编程序exp4_5.c,验证歌德巴赫猜想:2000以内的正偶数(不包括2)都能够分解为两个质数之和,即验证歌德巴赫猜想对2000以内的正偶数成立。(算法提示:将整数分解为两部分,然后判断出分解出的两个整数是否均为质数。若是,则满足题意并输出;否则重新进行分解和判断。(其中,判断一个整数是否为质数部分用函数实现,其余功能是否用函数实现自行决定)。

源代码:

#include<stdio.h>
#include<math.h>
int judgeprime(int n)
{
	int i, k;
	int judge = 1;
	if (n == 1)
		return 0;
	k = (int)sqrt(n);
	for (i = 2; judge && i <= k; i++)
		if (n % i == 0)//判断质数
			return 0;
	return 1;
}
int main()
{
	int x, m, n;
	for (x = 4; x <= 2000; x += 2)//判断正偶数
	{
		for (n = 3; n < (x / 2); n += 2)
		{
			m = x - n;//分解成两个数
			if (judgeprime(n) && judgeprime(m))
			{
				printf("%d=%d+%d\n", x, m, n);
			}
		}
	}
	return 0;
}

实验题目(3)用调试器观察实验教材程序exp4_8.c的运行过程,并记录各种变量在每一步执行时的变化情况,填写下表(如果某一步该变量不在作用域内,请在表格中注明)
源代码:

#include<stdio.h>
int a = 1;
int f(int a)
{
	auto int b = 2;
	static int c = 3;
	a = a + 1;
	b = b + 1;
	c = c + 1;
	return(a + b + c);
}

int main()
{
	int i;
	for (i = 0; i < 3; i++)
	{
		a = a + 2;
		printf("%d \n", f(a));
	}
	return 0;
}

调试结果:

实验题目(4):编程序exp4_7.c,用递归方法实现求解两个整数的最大公约数,并与迭代方法作比较。

源代码:

c#include<stdio.h>
int GCD(int m, int n);
int main()
{
	int b, x, y;
	printf("请输入两个正整数:");
	scanf_s("%d,%d", &x, &y);
	b = GCD(x, y);
	printf("最大公约数为%d\n", b);
	return 0;
}
int GCD(int m, int n)
{
	if (!(m % n))
		return n;
	else
		return(GCD(n, m % n));
}

结果:随便输入两个整数,输出结果即为两个数的最大公约数

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值