IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 实验报告三1打印一个n行的由字符c组成的等腰三角形.2验证歌德巴赫猜想2000以内的正偶数都能够分解为两个质数之和3. 用递归方法实现求解两个整数的最大公约数 -> 正文阅读

[数据结构与算法]实验报告三1打印一个n行的由字符c组成的等腰三角形.2验证歌德巴赫猜想2000以内的正偶数都能够分解为两个质数之和3. 用递归方法实现求解两个整数的最大公约数

一、实验目的和要求
(1)掌握正确的函数定义与调用,需要时会正确使用函数声明。会正确设置形式参数,理解参数传递及程序的执行流程。
(2)理解各种不同存储类别变量的生命期与作用域
(3)进一步熟悉调试器的使用,会利用调试器进行查错改错,会跟踪程序运行的每一步,观察变量的变化情况。
二、实验环境(实验设备)

硬件:  微型计算机

软件: Microsoft Visual C++6.0

三、实验原理及内容
实验题目(1)编程序exp4_2.c,先定义一个函数,其原型为:void DrawPic(int n,char c);功能为:打印一个n行的由字符c组成的等腰三角形(方法可参考主教材例4.11)。主函数中给出3次调用,分别打印出由7行’*’、11行’@’、20行’$’组成的等腰三角形。尽量使图形居中打印。通过修改与n对应的实参值,观察n最大值可以取到多少,再超过将无法正确输出等腰三角形。
实验解答:
① 源程序exp4_2.c的代码是:

#include<stdio.h>
int main()
{
	int i, j;
	for (i = 1;i <= 7;i++)
	{
		for (j = 1;j <= 7 - i;j++)
		{
			printf(" ");
		}
		for (j = 1;j <= 2 * i -1;j++)
		{
			printf("c");
		}
		printf("\n");
	}
	return 0;
}

② 多次运行程序,输入不同的数据,得到不同结果,请填写下表

期望得到的结果你所使用的调用语句程序的输出结果是否与期望相符
7行’*’相符for (i = 1;i <= 7;i++)printf(“c”);相符
11行’@’for (i = 1;i <= 11;i++)printf("@");相符
20行’$’for (i = 1;i <= 20;i++)printf("$");相符
最长的一行正好顶屏幕两边,图形符号为’#’for (i = 1;i <= 95;i++)printf("#");相符
无法正确显示的图形for (i = 1;i <= 95;i++)相符

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

#include<stdio.h>
int judge_prime(int n)
{
	int  i;
	for (i = 2;i <n ;i+=2)
	{
		if (n % i==0)
		break;
	}
	if (i >= n)
		return 1;
	else
		return 0;
}

int main()
{
	int n;
	scanf_s("%d", &n);
	for (int i = 3;i<n;i++)
	{
		if (judge_prime(i) == 1 && i % 2 == 1 && judge_prime(n - i) == 1 && (n - i) % 2 == 1)
		{
			printf("%d=%d+%d\n",n,i,n-i);
			break;
		}
    }
    return 0;		
}

② 多次运行程序,输入不同的数据,请填写下表

你输入的数据你程序的输出结果
10003+997
63+3
83+5
105+5

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

跟踪点全局变量af的形参af的自动局部变量bf的静态局部变量c主函数的i
int i;1
第1次for行-858993460
a = a+2;10
printf行30
第1次f函数左括号处3
auto int b = 2;3-858993460
static int c = 3;323
a = a+1;323
b = b+1;423
c = c+1;433
return (a+b+c);434
第1次f函数右括号处1130
第2次for行0
a = a+2;31
printf行51
第2次f函数左括号处5
auto int b = 2;5-858993460
static int c = 3;52-858993460
a = a+1;524
b = b+1;624
c = c+1;634
return (a+b+c);635
第2次f函数右括号处1451
第3次for行1
a = a+2;52
printf行72
第3次f函数左括号处7
auto int b = 2;7-858993460
static int c = 3;72-858993460
a = a+1;725
b = b+1;825
c = c+1;835
return (a+b+c);836
第3次f函数右括号处1772
第4次for行2
主函数的return 0;处7

实验题目(4):编程序exp4_7.c,用递归方法实现求解两个整数的最大公约数,并与迭代方法作比较。
实验解答:
①程序exp4_7.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));
}


② 多次运行程序,输入不同的数据,请填写下表
你输入的数据 你程序的输出结果

36,18	18
24,16	8
366	6
44,24	4
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:58:58  更:2021-12-23 16:01:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 16:35:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码