计算机软件基础实验报告(C语言)

合集下载

c语言的实验报告

c语言的实验报告

c语言的实验报告C语言的实验报告引言:计算机科学领域的学生们通常会在大学的课程中学习C语言。

C语言是一种通用的编程语言,它简洁高效,广泛应用于软件开发、嵌入式系统等领域。

在学习C语言的过程中,学生们通常需要进行一系列的实验来加深对语言特性和编程概念的理解。

本文将介绍几个常见的C语言实验,并总结实验过程中的体会和收获。

实验一:基本数据类型和运算符C语言提供了多种基本数据类型,如整型、浮点型、字符型等。

在这个实验中,我们需要熟悉这些数据类型的使用方法,并掌握基本的算术运算符和逻辑运算符。

通过编写简单的程序,我们可以实现整数相加、浮点数相乘等操作。

这个实验帮助我们了解C语言的基本语法和运算规则。

实验二:控制流程在实际的编程中,我们常常需要根据不同的条件来执行不同的代码块。

C语言提供了多种控制流程语句,如if语句、for循环、while循环等。

通过这个实验,我们可以学习如何使用这些语句来实现条件判断和循环操作。

例如,我们可以编写一个程序来判断一个数是否为素数,或者实现一个简单的猜数字游戏。

这个实验帮助我们掌握程序的流程控制和逻辑思维。

实验三:函数和指针函数是C语言中的重要概念,它可以将一段代码封装成一个独立的模块,方便代码的复用和维护。

指针是C语言中另一个重要的特性,它可以用来处理内存地址和动态分配内存。

在这个实验中,我们需要编写一些函数来实现特定的功能,并学习如何使用指针来操作变量和数组。

通过这个实验,我们可以提高代码的模块化程度,并学会灵活运用指针来解决实际问题。

实验四:文件操作在实际的软件开发中,我们经常需要读写文件来存储和处理数据。

C语言提供了一些函数来进行文件操作,如fopen、fread、fwrite等。

在这个实验中,我们需要编写程序来读取文件内容,进行数据处理,并将结果写入新的文件中。

通过这个实验,我们可以学习如何使用文件操作函数,并了解文件的打开、读写和关闭过程。

实验五:数据结构和算法数据结构和算法是计算机科学的核心内容,也是软件开发中不可或缺的部分。

c语言实验报告实验

c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。

二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。

三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。

熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。

2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。

运用 switch 语句进行多分支选择,处理不同的情况。

利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。

3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。

掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。

4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。

实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。

5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。

掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。

6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。

了解共用体的概念和使用场景,比较结构体和共用体的区别。

四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。

计算机软件基础实验报告

计算机软件基础实验报告

课程名称:计算机软件基础实验项目:1.最简单的C程序2.C程序的选择结构3.C程序的循环结构4.C程序的函数5.C程序的指针6.数据结构初步实验一、最简单的C程序一、实验目的(1)理解常用运算符的意义。

(2)掌握c 语言表达是的运算规则。

二、实际设备及器材计算机三、实验内容(1)整数除的危险性分析三个表达式的值,再设计程序测试,进行比较和分析。

int a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/b;f=c/b*a;d=0,e=71,f=70.程序测试:#include<stdio.h>int main(){int a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/b;f=c/b*a;printf("% d,% d,%d\n",d,e,f);}结果:(1)分析下面程序是比较x++与++x之间的区别。

例如:#include<stdio.h>int main(){int a=5,b=8;printf("a++=%d\n",a++);printf("a=%d\n",a);printf("++b=%d\n",++b);printf("b=%d\ny",b);}运行结果:由上述程序可以看出,x++是先使用x在使x+1,而++x是先使x+1在使用x。

(2)分析下列表达式的值测试程序:#include<stdio.h>int main(){int a,b,c,d,e,f;scanf("a=%d,b=%d\n",a,b);c=b+a+++a;d=b+(a++)+a;e=b+a+(++a);f=b+a+++a++;printf("c=%,d=%d,e=%d,f=%d\n",c,d,e,f);}四、思考题1.整数除的危险性2.C语言的运算规则实验二、C语言选择结构一、实验目的(1)掌握分支程序的基本结构。

c语言实验报告5篇

c语言实验报告5篇

c语言实验报告c语言实验报告5篇随着社会一步步向前发展,我们使用报告的情况越来越多,我们在写报告的时候要注意涵盖报告的基本要素。

其实写报告并没有想象中那么难,以下是小编收集整理的c语言实验报告,欢迎阅读与收藏。

c语言实验报告1学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验六综合实验一、实验目的1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。

2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。

3、掌握C程序的运行、调试方法等。

二、实验内容编写一个学生信息排序程序。

要求:1、程序运行时可输入n个学生的信息和成绩(n预先定义)。

2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。

3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。

1、使用函数方法定义各个模块。

三、实验步骤与过程物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板四、程序调试记录c语言实验报告2第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。

(]1.2 实验要求在报告中记录建立、保存C程序实习过程。

1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main(){printf (“Hello World! ”);}2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。

计算机软件基础实验报告(C语言)

计算机软件基础实验报告(C语言)

计算机软件基础实验报告一.实验目的1.熟悉C语言的使用,编辑算法实现特定要求。

2.熟悉Huffman树的编码程序和数组元素的比较程序等。

二.实验内容和要求1.实验内容1)试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n 个元素为有序排列时,元素之间的比较次数仅为n-1次。

2)在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编码相比时的压缩比。

2.实验要求1)根据实验内容编写算法,并用 C 语言进行程序设计。

2)将所编程序在计算机上调试通过,并全面测试。

3)整理完成实验报告,包括:姓名、学号、实验日期等。

三.程序清单1.#include<iostream.h>int main(){int n,max,min;cout<<"请输入数组大小"<<endl;cin>>n;int *a=new int [n];//输入数组for(int i=0;i<n;i++){cin>>a[i];}//比较排序for(int k=0;k<n-1;k++)for(int j=k+1;j<n;j++){if(a[k]>a[j]){int temp=0;temp=a[k];a[k]=a[j];a[j]=temp;}}//为最大值和最小值赋值max=a[n-1];min=a[0];//输出结果cout<<"排序后的序列"<<endl;for(int l=0;l<n;l++)cout<<" "<<a[l];cout<<endl;cout<<"max= "<<max<<" min= "<<min<<endl;return 0;}2.#include <dos.h>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>typedef struct{unsigned int weight; //结点权值unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针}HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成哈夫曼树void HuffmanCoding(HuffmanTree,HuffmanCode &,int,unsigned int* ); //对哈夫曼树进行编码void PrintHuffmanCode(HuffmanCode,unsigned int*,int,unsigned int*); //显示哈夫曼编码void Select(HuffmanTree,int,int&,int&); //在数组中寻找权值最小的两个结点void drawHT(int,unsigned int* ,unsigned int*);int powlen(int);void ptspace(int );int mstep(int);void main(){HuffmanTree HT; //哈夫曼树HTHuffmanCode HC; //哈夫曼编码表HCint n,i; //n是哈夫曼树叶子结点数unsigned int *w,*num; //w存放叶子结点权值char j='y';printf("演示构造哈夫曼树.\n");printf("输入需要进行编码的字符数目.\n例如:8\n");printf("然后输入每个字符出现的次数/权值.\n");printf("例如:5 29 7 8 14 23 3 11\n");printf("自动构造一棵哈夫曼树并显示哈夫曼编码.\n");printf(" 5---0110\n 29---10\n 7---1110\n 8---1111\n 14---110\n");printf(" 23---00\n 3---0111\n 11---010\n");while(j!='N'&&j!='n'){printf("请输入字符数目:");scanf("%d",&n); //输入字符数目if(n<=1) {printf("该数不合理!\n");continue;}w=(unsigned int*)malloc(2*n*sizeof(unsigned int)); //开辟空间存放权值num=(unsigned int*)malloc(2*n*sizeof(unsigned int));printf("请输入各字符出现的次数/权值:\n");for(i=0;i<n;i++) scanf("%d",&w[i]); //输入各字符出现的次数/权值CreateHuffmanTree(HT,w,n); //生成哈夫曼树HuffmanCoding(HT,HC,n,w); //进行哈夫曼编码PrintHuffmanCode(HC,w,n,num); //显示哈夫曼编码printf("\n");drawHT(n,w,num);printf("哈夫曼树构造完毕,还要继续吗?(Y/N)");free(w);free(num);scanf(" %c",&j);}}void CreateHuffmanTree(HuffmanTree &HT,unsigned int *w,int n){//w存放n个结点的权值,将构造一棵哈夫曼树HTint i,m;int s1,s2;HuffmanTree p;if(n<=1) return;m=2*n-1; //n个叶子结点的哈夫曼树,有2*n-1个结点HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); //开辟2*n各结点空间for(p=HT+1,i=1;i<=n;++i,++p,++w) //进行初始化{ p->weight=*w;p->parent=0;p->lchild=0;p->rchild=0;}for(;i<=m;++i,++p){p->weight=0;p->parent=0;p->lchild=0;p->rchild=0;}for(i=n+1;i<=m;++i) //建哈夫曼树{Select(HT,i-1,s1,s2);//从HT[1...i-1]中选择parent为0且weight最小的两个结点,其序号分别为s1和s2HT[s1].parent=i; HT[s2].parent=i; //修改s1和s2结点的父指针parentHT[i].lchild=s1; HT[i].rchild=s2; //修改i结点的左右孩子指针HT[i].weight=HT[s1].weight+HT[s2].weight; //修改权值}}void HuffmanCoding(HuffmanTree HT,HuffmanCode &HC,int n,unsigned int* w) {//将有n个叶子结点的哈夫曼树HT进行编码,所编的码存放在HC中//方法是从叶子到根逆向求每个叶子结点的哈夫曼编码int i,c,f,start;char *cd;HC=(HuffmanCode)malloc((n*2)*sizeof(char *)); //分配n个编码的头指针向量cd=(char *)malloc(n*sizeof(char)); //开辟一个求编码的工作空间cd[n-1]='\0'; //编码结束符for(i=1;i<2*n;++i) //逐个地求哈夫曼编码{start=n-1;//编码结束位置if(i>n)w[i-1]=HT[i].weight;for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent) //从叶子到根逆向求编码{if(HT[f].lchild==c)cd[--start]='0'; //若是左孩子编为'0'elsecd[--start]='1'; //若是右孩子编为'1' }HC[i]=(char *)malloc((n-start)*sizeof(char)); //为第i个编码分配空间strcpy(HC[i],&cd[start]); //将编码从cd复制到HC中}free(cd); //释放工作空间}void PrintHuffmanCode(HuffmanCode HC,unsigned int *w,int n,unsigned int *num) {//显示有n个叶子结点的哈夫曼树的编码表int i,j,temp,len,x,ly=0;float mux=0;j=powlen(n);printf("HuffmanCode is :\n");for(i=1;i<2*n;i++){temp=atoi(HC[i]);len=strlen(HC[i]);if(i<=n){printf(" %3d---",w[i-1]);puts(HC[i]);mux+=len*w[i-1];ly+=w[i-1];}x=(int)pow(2.0,len);num[i-1]=mstep(temp)+x-1;}mux/=ly;printf("\n");printf("压缩比是%f",j/mux);}void Select(HuffmanTree HT,int t,int&s1,int&s2){//在HT[1...t]中选择parent不为0且权值最小的两个结点,其序号分别为s1和s2 int i,m,n;m=n=10000;for(i=1;i<=t;i++){if(HT[i].parent==0&&(HT[i].weight<m||HT[i].weight<n))if(m<n){n=HT[i].weight;s2=i;}else{m=HT[i].weight;s1=i;}}if(s1>s2) //s1放较小的序号{i=s1;s1=s2;s2=i;}}int mstep(int a){int i=1,x=0,mod;if(a==0)return 0;while(a){mod=a%10;if(mod==1){x=x+i;}a=a/10;i=i*2;}return x;}void ptspace(int x){int i=0;for(i=0;i<x;i++)printf(" ");}void drawHT(int n,unsigned int *w,unsigned int*num){int i=0,j=1,k=1,m=2*n-1,xu=1,t=2;int x[500]={0};for(i=0;i<2*n-1;i++){x[num[i]]=w[i];}i=0;do{ptspace(64/t);for(xu=j;(xu<j*2);xu++){if(x[xu-1]!=0){printf("%d",x[xu-1]);i++;}elseprintf(" ");ptspace(2*64/t-1);}t*=2;j*=2;printf("\n");}while(i<2*n-1);}int powlen(int n){int i=2,j=1;float mux=0;while(n>i){i=i*2;j=j+1;}return j;}四.所输入的数据及运行结果1.2.五.实验心得通过此次实验,对于此次实验要求中的程序设计有了一定的认识。

(完整版)c实验报告

(完整版)c实验报告

(完整版)c实验报告实验名称: C语言实验报告实验内容:本次实验主要针对C语言编程进行实验。

通过实验的设计和完成,检验和加深对C语言的理解和应用能力。

实验步骤:1. 实验准备在开始实验之前,需要准备好以下必要的工具和材料:- 计算机- C语言编译器(比如GCC、Clang等)- 文本编辑器(比如Notepad++、Sublime Text等)2. 实验环境搭建在计算机上安装C语言编译器,并配置好相应的环境变量。

这样可以在终端或命令提示符中执行相关的C程序。

3. 编写实验代码根据实验要求,使用文本编辑器编写C语言代码。

根据实验的要求和功能需求,合理设计和组织代码结构,包括头文件的引用、变量的定义、函数的声明和定义等。

4. 编译和运行代码在命令行或终端中使用编译器对编写好的C语言代码进行编译,并生成可执行文件。

编译命令的具体格式根据不同的编译器而有所差异,但一般形式如下:```gcc -o output_file input_file.c```其中,"output_file"表示生成的可执行文件名,"input_file.c"表示待编译的C源代码文件名。

编译成功后,通过命令行或终端执行生成的可执行文件,检查程序的运行结果是否符合预期。

5. 实验结果分析根据实际运行结果,对实验数据进行分析和归纳。

可以通过输出结果、打印特定信息或观察程序的行为来判断程序是否正确地实现了预期的功能。

6. 实验总结在实验报告中对本次实验的过程、方法、结果进行总结,并提出实验中遇到的问题和解决方法。

同时,对所学习的C语言相关知识点进行总结和归纳,以加深对相关知识的理解和记忆。

实验结果:通过本次实验的设计和实现,我成功完成了对C语言编程的实验,达到了预期的目标。

通过编写实际的代码,我巩固了对C语言语法和基本概念的理解。

在实验过程中,我遇到了一些问题,通过查阅资料和与同学的讨论,我成功解决了这些问题。

c语言实验报告详细设计

c语言实验报告详细设计

实验报告:C语言程序设计
一、实验目的
通过本次实验,使学生掌握C语言的基本语法和程序设计思想,培养学生的编程能力和解决问题的能力。

二、实验内容
1. C语言程序的组成和结构
2. 数据类型、运算符和表达式
3. 输入输出函数
4. 控制结构(选择结构和循环结构)
5. 数组和字符串
6. 函数和程序结构
7. 指针和内存管理
三、实验步骤
1. 准备阶段:了解实验内容和要求,准备好所需的资料和工具。

2. 设计阶段:根据实验内容,设计程序结构和算法,编写代码。

3. 调试阶段:运行程序,调试代码,确保程序的正确性和可靠性。

4. 测试阶段:对程序进行各种测试,确保程序的正确性和性能。

5. 总结阶段:总结实验过程和结果,撰写实验报告。

四、实验结果与分析
1. 实验结果:通过本次实验,学生掌握了C语言的基本语法和程序设计思想,能够编写简单的C程序,解决了一些实际问题。

2. 结果分析:在实验过程中,学生遇到了一些问题,如语法错误、逻辑错误等。

通过调试和测试,学生逐渐掌握了C语言的编程技巧和方法,提高了编程能力和解决问题的能力。

五、结论与建议
1. 结论:通过本次实验,学生掌握了C语言的基本语法和程序设计思想,能够编写简单的C程序,解决了一些实际问题。

同时,学生也提高了编程能力和解决问题的能力。

2. 建议:在今后的实验中,应该更加注重学生的实践能力和创新能力的培养,加强实验内容的深度和广度,提高学生的编程能力和解决问题的能力。

同时,应该注重实验过程的规范化和科学化,确保实验结果的准确性和可靠性。

C语言实验报告(实验一)

C语言实验报告(实验一)

运行结果:
分析:当对源程序进行编译时,如果屏幕上没有出现“出错信息”,就对其进行运行并得出结果运行结果是会出现如下信息:
得到的运行结果如下:
分析:当写完一个源程序要仔细检查,如果出现错误提醒就按照上面的指示对其进行修改,只有
输入的数为:
运行结果:
分析:如果在输入数时两个数中间用空格符隔开,即

当把其改为原来的程序再运行时错误提醒就会消失,并得到和上面的结果一样的结果:
分析:合并后没有出现错误提醒,即这样做是正确的。

输入的三个数为:
分析:在前面的比较两个数中的大数的基础上比较三个数的最大数,只要在输入的源程序没有错。

c语言实验报告

c语言实验报告

计算机软件技术基础实验报告实验一:线性表的排序与查找一.实验内容a)键盘输入一组无序数据,添加到线性表中;b)排序线性表并输出排序结果;c)键盘输入一个数,并插入到排好序的线性表中(要求插入后的表仍为有序表),输出结果;d)键盘输入一个数,并从线性表中删除相应的数据,输出结果。

二,源程序// Experiment1。

cpp :定义控制台应用程序的入口点。

//#include "stdafx.h”#include "iostream”#include 〈conio。

h〉// 程序实现有各种方法,这里给出一个实例。

// 定义一个线性表const int nMaxSize = 15;// 最大值int nLen = 0; // 表中元素个数int nLinearList[nMaxSize];// 定义操作void LSort();void LOut();void LInsert(int n);void LDelete(int n);int main(int argc,TCHAR*argv[]){// 输入数据并放入线性表中printf(”Pleas e input data\n"); // std::cout 〈< "Please input data\n”;int nIn = 0;for (int i = 1; i <= 10;i++){scanf(”%d”,&nIn);// std::cin >〉nIn;nLinearList[i] = nIn;nLen++;}LSort();// 排序线性表LOut();// 输出结果printf(”Please input a data to i nsert \n”);scanf(”%d”,&nIn);LInsert(nIn);// 输入一个数字,并插入到线性表中LOut();printf(”Please input a data to delete \n");scanf("%d”,&nIn);LDelete(nIn);// 输入一个数字,并从线性表中删除LOut();char chTmp;printf(”Please input a char to finish this program.");chTmp = getch();return 0;}void LSort()// 冒泡排序,由大到小{int j,F,k,M;F=nLen;while(F〉0){k=F-1;F=0;for(j=1;j<=k;j++){if(nLinearList[j]〈nLinearList[j+1]){M=nLinearList[j];nLinearList[j]=nLinearList[j+1];nLinearList[j+1]=M;F=j;}}}}void LOut(){printf("\n”);for (int i = 1;i 〈= nLen;i++){printf( "%d, ", nLinearList[i]);}printf(”\n”);}void LInsert(int n){int i,j;i=1;while (i<nLen){ if(nLinearList[i]〈=n){nLen++;for(j=nLen;j>=i;j—-)nLinearList[j+1]=nLinearList[j];nLinearList[i]=n;break;}i++;}}void LDelete(int n){int i,j;for(i=1;i<=nLen;i++){if(nLinearList[i]==n){for(j=i;j〈=(nLen—1);j++)nLinearList[j]=nLinearList[j+1];nLen—-;break;}}}三运行结果实验2:栈与队列的应用一.实验内容a)键盘输入算数表达式,并放入队列当中;b)应用栈的概念设计表达式求值算法;输出表达式求值结果二.源程序// Experiment2。

C语言实验报告(精选9篇)

C语言实验报告(精选9篇)

C语言实验报告C语言实验报告(精选9篇)在经济发展迅速的今天,我们都不可避免地要接触到报告,通常情况下,报告的内容含量大、篇幅较长。

写起报告来就毫无头绪?下面是小编帮大家整理的C语言实验报告,欢迎阅读与收藏。

C语言实验报告1在这个星期里,我们在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c 语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

C语言实验报告9篇

C语言实验报告9篇

C语言实验报告C语言实验报告9篇随着个人素质的提升,报告的适用范围越来越广泛,我们在写报告的时候要注意语言要准确、简洁。

写起报告来就毫无头绪?以下是小编为大家整理的C语言实验报告,仅供参考,欢迎大家阅读。

C语言实验报告1一、实习目的1.掌握在集成环境中编辑、编译、连接和运行C程序的方法。

(1)运行TC(2)启动TC集成环境,输入一个源程序,编译并运行。

2.掌握单步执行、设置/去除断点,观察变量或表达式的值。

(3)在该程序中按CTRL+F7单步招待并在观察窗口中查看变量和表达式的值。

(4)设置/去除断点,继续调试。

1、熟练掌握if.switch分支语句的使用。

2、熟练掌握for.while.do.while循环语句的使用。

3、熟练掌握函数的定义、说明、参数传递及嵌套和递归调用方法。

4、熟练掌握一维数组、二维数组、字符数组的定义、说明和使用方法。

熟练掌握结构体和指针的综合应用链表的操作二、实习地点北京交通干部管理学院计算机系机房十三号.三、实习成果熟练掌握TC集成环境的使用方法。

认真编写实习报告和实习总结,描述实习操作和心得体会,总结在这次实习中的业务收获,作出自我评价。

熟练掌握并应用TC程序设计的各个知识点。

掌握结构体和指针的联合使用,学会链表的构造和常用操作方法,认真编写实习日志和实习体会。

并通过各种途径查找所需资料,拓宽视野,培养自学能力。

四、实习心得在短短一周的实习期间使我获取了不少新知识也巩固了许多老知识。

我体会到了老师和同学们的热心帮助,无论面对学习中多大的困难,同学们都会帮助你,老师也会帮助你,大家就像兄弟姐妹一样。

老师安排我们有具有的分工:首先,在计算机机房里同学们积极的对C语言进行巩固与实习,老师热心的讲解同学们提出的问题和实习过程中应该注意的事项和同学们的任何。

老师把我们分为几组,每一组十一个人,并且分配了具体的任务,在我们实习结束后每一组的同学都把自己组里的成果展示给大家一起分享,告诉大家编程的原理、方法等,使同学们既有动手能力,又能提高语言表达能力。

c语言实验报告

c语言实验报告

c语言实验报告
实验名称:C语言基础实验
实验目的:
1. 熟悉C语言的基本语法和编程规范;
2. 掌握基本数据类型的使用方法;
3. 熟悉C语言中的条件语句、循环语句和函数的使用方法。

实验材料:
1. 计算机硬件设备;
2. C语言编译器。

实验内容:
1. 编写一个程序,实现从键盘输入两个整数,输出它们的和、差、积和商;
2. 编写一个函数,实现计算一个整数的阶乘;
3. 编写一个程序,实现输出1~100之间的所有素数。

实验步骤:
实验一:
1. 打开C语言编译器;
2. 新建一个C语言源文件,命名为"实验一.c";
3. 编写程序代码,实现从键盘输入两个整数,计算它们的和、差、积和商,然后输出;
4. 编译和运行程序,验证结果是否正确。

实验二:
1. 新建一个C语言源文件,命名为"实验二.c";
2. 编写一个函数,实现计算一个整数的阶乘;
3. 在主函数中调用该函数,输入一个整数并计算其阶乘;
4. 编译和运行程序,验证结果是否正确。

实验三:
1. 新建一个C语言源文件,命名为"实验三.c";
2. 编写程序代码,实现输出1~100之间的所有素数;
3. 编译和运行程序,验证结果是否正确。

实验总结:
通过本次实验,我掌握了C语言的基本语法和编程规范,熟悉了基本数据类型的使用方法,并学会了使用条件语句、循环语句和函数来解决问题。

同时,通过实际编程,我增加了对C 语言编程的经验和实践能力。

这些对我今后学习和工作将会有很大帮助。

C语言实验报告总结(共6篇)

C语言实验报告总结(共6篇)

c语言上机实验心得在科技高度发展的今天,计算机在人们之中的作用越来越突出。

而c语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好c语言,这对我们以后的发展是十分重要的。

说到这,上机实验当然就是一个必不可少的环节了,c语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。

为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。

通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了c语言那就大错特错了。

我主要存在以下的这些缺点:1、学习耐心与细心不足,如scanf(“%d”,&amp;n);中的“&amp;”有时候会忘了。

而在最后输出时又错写成printf(“%d”,&amp;n);从而错误得输出了地址而不是我原来想要的答案。

2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解题了。

3、4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。

知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够深刻。

5、6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。

英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在一点问题。

为了能更好地学好c语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。

实验中我深刻意识到完成程序的编写,决不意味着万事大吉。

认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。

有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。

因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。

c语言实验报告

c语言实验报告

c语言实验报告一、引言C语言是一种广泛应用于计算机科学和软件开发领域的编程语言。

它的简洁性、高效性以及跨平台的特性使其成为许多开发人员的首选。

本篇实验报告将介绍我在学习C语言过程中进行的几个实验项目,并详细记录每个实验的步骤、结果以及对C语言的理解。

二、实验一:Hello World!在学习任何一门编程语言时,第一个示例程序往往是输出"Hello World!"。

这个简单的程序虽然看似微不足道,却能够帮助初学者了解基本的编译和运行过程。

在实验中,我使用了C语言的基本语法,编写了一个简单的Hello World程序,并成功地将其编译并运行。

这个小小的成就让我对C语言有了初步的认识和信心。

三、实验二:计算器程序为了更深入地理解C语言的数据类型和运算符,我决定编写一个简单的计算器程序。

这个程序可以实现基础的四则运算和一些简单的数学函数,如平方根和求幂等。

通过这个实验,我学会了如何使用变量、条件语句和循环结构来实现计算功能,并通过不断调试和修改,使程序更加健壮和高效。

四、实验三:数组与排序数组是C语言中非常重要的概念,在实验三中,我探索了数组的用法和特性,并将其应用于一个排序算法中。

我选择了冒泡排序作为实验的排序算法,通过比较相邻元素的大小并不断交换位置,最终将数组中的元素按照升序排列。

这个实验使我更加熟悉了数组的操作,也加深了我对算法思想和效率的理解。

五、实验四:文件操作在现实世界中,大部分的应用程序需要与文件进行交互。

为了学习如何使用C语言进行文件操作,我进行了实验四。

在这个实验中,我编写了一个小程序,能够读取一个文本文件的内容,统计其中不同字符的数量,并将结果输出到另一个文件。

通过这个实验,我了解了如何打开、关闭和读写文件,也学习了异常处理以及文件操作的一些注意事项。

六、实验五:数据结构和指针C语言提供了指针的机制,允许直接访问和操纵内存中的数据。

为了更深入地理解指针和数据结构之间的关系,我进行了实验五。

计算机c语言实训报告(精选5篇)

计算机c语言实训报告(精选5篇)

计算机c语言实训报告(精选5篇)计算机c语言实训报告篇1一、课题名称:简单计算器设计一个简单的程序来模拟计算器的功能。

二、设计目的:1、通过理论知识与实际需求相结合,编辑解决一些日常中的实际问题,培养初步的独立分析和设计能力。

2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范;3、重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法;4、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

三、设计任务:1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。

输入一个算术计算式,就在屏幕上显示结果。

2、输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;四、设计要求:1、用C语言实现程序设计并进行调试;2、画出查询模块的流程图;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机互交)。

5、完成设计(A4)。

五、代码设计:#include "stdio.h" main { float x,y;char operator;printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator){case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0) printf("chushushilingwuyiyi"); elseprintf("%.2f/%.2f=%.2f",x,y,x/y); break;default: printf("yunsunfuwuxiao"); } }?七、设计总结:学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。

c语言实验报告实验

c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际编程操作,加深对 C 语言基本语法、数据类型、控制结构、函数等知识的理解和运用,提高编程能力和解决实际问题的能力。

二、实验环境操作系统:Windows 10编译器:DevC++ 511三、实验内容(一)基本数据类型与运算1、定义不同类型的变量,如整型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和基本运算。

2、观察不同数据类型在内存中的存储方式和取值范围。

(二)控制结构1、编写使用 ifelse 语句实现条件判断的程序,根据输入的数值输出不同的结果。

2、运用 for 循环和 while 循环结构,实现计算指定范围内的整数和、平均值等。

(三)数组与字符串1、定义数组并进行初始化,实现数组元素的遍历和操作。

2、处理字符串的输入、输出和基本操作,如字符串的连接、比较等。

(四)函数1、定义和调用自定义函数,实现特定功能,如计算阶乘、判断素数等。

2、理解函数的参数传递方式(值传递和地址传递)。

四、实验步骤及代码实现(一)基本数据类型与运算```cinclude <stdioh>int main(){int num1 = 10;float num2 = 314;char ch ='A';printf("整型变量 num1 的值为:%d\n", num1);printf("浮点型变量 num2 的值为:%f\n", num2);printf("字符型变量 ch 的值为:%c\n", ch);int sum = num1 +(int)num2;printf("num1 和num2 的和(强制转换为整型)为:%d\n",sum);return 0;}```(二)控制结构1、 ifelse 语句```cinclude <stdioh>int main(){int num = 5;if (num > 10) {printf("数字大于 10\n");} else {printf("数字小于或等于 10\n");}return 0;}```2、 for 循环```cinclude <stdioh>int main(){int sum = 0;for (int i = 1; i <= 10; i++){sum += i;}printf("1 到 10 的整数和为:%d\n", sum);return 0;}```3、 while 循环```cinclude <stdioh>int main(){int num = 1;int product = 1;while (num <= 5) {product = num;num++;}printf("1 到 5 的乘积为:%d\n", product);return 0;}```(三)数组与字符串1、数组```cinclude <stdioh>int main(){int arr ={1, 2, 3, 4, 5};for (int i = 0; i < 5; i++){printf("数组元素 arr%d 的值为:%d\n", i, arri);}return 0;}```2、字符串```cinclude <stdioh>include <stringh>int main(){char str1 ="Hello, ";char str2 ="World!";char str320;strcpy(str3, str1);strcat(str3, str2);printf("连接后的字符串为:%s\n", str3);int result = strcmp(str1, str2);if (result == 0) {printf("两个字符串相等\n");} else if (result < 0) {printf("str1 小于 str2\n");} else {printf("str1 大于 str2\n");}return 0;}```(四)函数1、计算阶乘```cinclude <stdioh>int factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n factorial(n 1);}}int main(){int num = 5;int fact = factorial(num);printf("%d 的阶乘为:%d\n", num, fact);return 0;}```2、判断素数```cinclude <stdioh>int isPrime(int n) {if (n <= 1) {}for (int i = 2; i i <= n; i++){if (n % i == 0) {return 0;}}return 1;}int main(){int num = 7;if (isPrime(num)){printf("%d 是素数\n", num);} else {printf("%d 不是素数\n", num);}return 0;}五、实验结果与分析(一)基本数据类型与运算程序运行结果符合预期,不同数据类型的变量能够正确存储和运算,对浮点型数据的强制类型转换也能得到正确的结果。

c语言实验报告

c语言实验报告

c语言实验报告C语言实验报告。

实验目的,通过本次实验,掌握C语言的基本语法和编程技巧,能够编写简单的C程序并进行调试和运行。

实验内容,本次实验主要包括以下内容,1. C语言的基本语法和数据类型;2. C语言的流程控制语句;3. C语言的函数和数组;4. C语言的指针和内存管理。

实验步骤:1. 编写一个简单的C程序,实现输入两个数并输出它们的和、差、积和商的功能。

在程序中要求用户输入两个数,然后计算它们的和、差、积和商,并将结果输出到屏幕上。

2. 编写一个C程序,实现对一个整数数组进行排序的功能。

在程序中定义一个整数数组,然后利用冒泡排序算法对数组进行排序,并将排序后的结果输出到屏幕上。

3. 编写一个C程序,实现对一个字符串数组进行查找的功能。

在程序中定义一个字符串数组,然后输入一个字符串,利用循环结构在数组中查找该字符串,并输出查找结果。

实验结果分析:通过本次实验,我对C语言的基本语法和编程技巧有了更深入的了解。

在编写程序的过程中,我掌握了C语言的数据类型、流程控制语句、函数、数组、指针等基本知识,并且能够灵活运用这些知识解决实际问题。

在调试和运行程序的过程中,我发现了一些常见的错误,并及时进行了修正,提高了自己的编程水平。

结论:通过本次实验,我对C语言的基本语法和编程技巧有了更深入的了解,能够编写简单的C程序并进行调试和运行。

在今后的学习和工作中,我将继续加强对C 语言的学习,不断提高自己的编程能力,为将来的软件开发工作做好准备。

总结:本次实验是我对C语言学习的一个重要阶段,通过实际动手编写程序,我更加深入地理解了C语言的基本语法和编程技巧。

在未来的学习和工作中,我会继续加强对C语言的学习,不断提高自己的编程能力,为将来的软件开发工作做好准备。

实验报告 (1)c语言

实验报告 (1)c语言
#include "stdio.h"
main()
{
int a,b;
float x,y;
char c1,c2;
scanf(“a=%d,b=%d”,&a,&b);
scanf(“%f, %e”,&x,&y);
scanf(“%c %c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);
【作业】
1.参照例题,编写一个C程序,输出以下信息:
****************************
Hello,World!
***************************
2.编写一个C程序,输入a、b、c三个数,输出其中最大者。试想,如果求四个数中的最大者,则程序该如何编写。
(二)C语言的基础知识
scanf("%c",&c);//以字符的形式输入数字就是输入数字字符
a=c-'0';//将数字字符转换为数字或者a=c-48;
printf("a=%d",a);
}
数字和数字字符这是两个不同的概念,如:数字0和数字字符‘0’是不同的,因为他们的ASIIC码值不一样。
(三)一维数组
【目的与要求】
1.掌握一维数组的定义、赋值和输入输出的方法;
printf("Everyone has been waiting for.\n");
}
【例2】输入并运行程序,写出运行结果。
main()
{
int a,b,sum;
a=123;b=456;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机软件基础实验报告一.实验目的1.熟悉C语言的使用,编辑算法实现特定要求。

2.熟悉Huffman树的编码程序和数组元素的比较程序等。

二.实验内容和要求1.实验内容1)试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n 个元素为有序排列时,元素之间的比较次数仅为n-1次。

2)在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编码相比时的压缩比。

2.实验要求1)根据实验内容编写算法,并用 C 语言进行程序设计。

2)将所编程序在计算机上调试通过,并全面测试。

3)整理完成实验报告,包括:姓名、学号、实验日期等。

三.程序清单1.#include<iostream.h>int main(){int n,max,min;cout<<"请输入数组大小"<<endl;cin>>n;int *a=new int [n];//输入数组for(int i=0;i<n;i++){cin>>a[i];}//比较排序for(int k=0;k<n-1;k++)for(int j=k+1;j<n;j++){if(a[k]>a[j]){int temp=0;temp=a[k];a[k]=a[j];a[j]=temp;}}//为最大值和最小值赋值max=a[n-1];min=a[0];//输出结果cout<<"排序后的序列"<<endl;for(int l=0;l<n;l++)cout<<" "<<a[l];cout<<endl;cout<<"max= "<<max<<" min= "<<min<<endl;return 0;}2.#include <dos.h>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>typedef struct{unsigned int weight; //结点权值unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针}HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成哈夫曼树void HuffmanCoding(HuffmanTree,HuffmanCode &,int,unsigned int* ); //对哈夫曼树进行编码void PrintHuffmanCode(HuffmanCode,unsigned int*,int,unsigned int*); //显示哈夫曼编码void Select(HuffmanTree,int,int&,int&); //在数组中寻找权值最小的两个结点void drawHT(int,unsigned int* ,unsigned int*);int powlen(int);void ptspace(int );int mstep(int);void main(){HuffmanTree HT; //哈夫曼树HTHuffmanCode HC; //哈夫曼编码表HCint n,i; //n是哈夫曼树叶子结点数unsigned int *w,*num; //w存放叶子结点权值char j='y';printf("演示构造哈夫曼树.\n");printf("输入需要进行编码的字符数目.\n例如:8\n");printf("然后输入每个字符出现的次数/权值.\n");printf("例如:5 29 7 8 14 23 3 11\n");printf("自动构造一棵哈夫曼树并显示哈夫曼编码.\n");printf(" 5---0110\n 29---10\n 7---1110\n 8---1111\n 14---110\n");printf(" 23---00\n 3---0111\n 11---010\n");while(j!='N'&&j!='n'){printf("请输入字符数目:");scanf("%d",&n); //输入字符数目if(n<=1) {printf("该数不合理!\n");continue;}w=(unsigned int*)malloc(2*n*sizeof(unsigned int)); //开辟空间存放权值num=(unsigned int*)malloc(2*n*sizeof(unsigned int));printf("请输入各字符出现的次数/权值:\n");for(i=0;i<n;i++) scanf("%d",&w[i]); //输入各字符出现的次数/权值CreateHuffmanTree(HT,w,n); //生成哈夫曼树HuffmanCoding(HT,HC,n,w); //进行哈夫曼编码PrintHuffmanCode(HC,w,n,num); //显示哈夫曼编码printf("\n");drawHT(n,w,num);printf("哈夫曼树构造完毕,还要继续吗?(Y/N)");free(w);free(num);scanf(" %c",&j);}}void CreateHuffmanTree(HuffmanTree &HT,unsigned int *w,int n){//w存放n个结点的权值,将构造一棵哈夫曼树HTint i,m;int s1,s2;HuffmanTree p;if(n<=1) return;m=2*n-1; //n个叶子结点的哈夫曼树,有2*n-1个结点HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); //开辟2*n各结点空间for(p=HT+1,i=1;i<=n;++i,++p,++w) //进行初始化{ p->weight=*w;p->parent=0;p->lchild=0;p->rchild=0;}for(;i<=m;++i,++p){p->weight=0;p->parent=0;p->lchild=0;p->rchild=0;}for(i=n+1;i<=m;++i) //建哈夫曼树{Select(HT,i-1,s1,s2);//从HT[1...i-1]中选择parent为0且weight最小的两个结点,其序号分别为s1和s2HT[s1].parent=i; HT[s2].parent=i; //修改s1和s2结点的父指针parentHT[i].lchild=s1; HT[i].rchild=s2; //修改i结点的左右孩子指针HT[i].weight=HT[s1].weight+HT[s2].weight; //修改权值}}void HuffmanCoding(HuffmanTree HT,HuffmanCode &HC,int n,unsigned int* w) {//将有n个叶子结点的哈夫曼树HT进行编码,所编的码存放在HC中//方法是从叶子到根逆向求每个叶子结点的哈夫曼编码int i,c,f,start;char *cd;HC=(HuffmanCode)malloc((n*2)*sizeof(char *)); //分配n个编码的头指针向量cd=(char *)malloc(n*sizeof(char)); //开辟一个求编码的工作空间cd[n-1]='\0'; //编码结束符for(i=1;i<2*n;++i) //逐个地求哈夫曼编码{start=n-1;//编码结束位置if(i>n)w[i-1]=HT[i].weight;for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent) //从叶子到根逆向求编码{if(HT[f].lchild==c)cd[--start]='0'; //若是左孩子编为'0'elsecd[--start]='1'; //若是右孩子编为'1' }HC[i]=(char *)malloc((n-start)*sizeof(char)); //为第i个编码分配空间strcpy(HC[i],&cd[start]); //将编码从cd复制到HC中}free(cd); //释放工作空间}void PrintHuffmanCode(HuffmanCode HC,unsigned int *w,int n,unsigned int *num) {//显示有n个叶子结点的哈夫曼树的编码表int i,j,temp,len,x,ly=0;float mux=0;j=powlen(n);printf("HuffmanCode is :\n");for(i=1;i<2*n;i++){temp=atoi(HC[i]);len=strlen(HC[i]);if(i<=n){printf(" %3d---",w[i-1]);puts(HC[i]);mux+=len*w[i-1];ly+=w[i-1];}x=(int)pow(2.0,len);num[i-1]=mstep(temp)+x-1;}mux/=ly;printf("\n");printf("压缩比是%f",j/mux);}void Select(HuffmanTree HT,int t,int&s1,int&s2){//在HT[1...t]中选择parent不为0且权值最小的两个结点,其序号分别为s1和s2 int i,m,n;m=n=10000;for(i=1;i<=t;i++){if(HT[i].parent==0&&(HT[i].weight<m||HT[i].weight<n))if(m<n){n=HT[i].weight;s2=i;}else{m=HT[i].weight;s1=i;}}if(s1>s2) //s1放较小的序号{i=s1;s1=s2;s2=i;}}int mstep(int a){int i=1,x=0,mod;if(a==0)return 0;while(a){mod=a%10;if(mod==1){x=x+i;}a=a/10;i=i*2;}return x;}void ptspace(int x){int i=0;for(i=0;i<x;i++)printf(" ");}void drawHT(int n,unsigned int *w,unsigned int*num){int i=0,j=1,k=1,m=2*n-1,xu=1,t=2;int x[500]={0};for(i=0;i<2*n-1;i++){x[num[i]]=w[i];}i=0;do{ptspace(64/t);for(xu=j;(xu<j*2);xu++){if(x[xu-1]!=0){printf("%d",x[xu-1]);i++;}elseprintf(" ");ptspace(2*64/t-1);}t*=2;j*=2;printf("\n");}while(i<2*n-1);}int powlen(int n){int i=2,j=1;float mux=0;while(n>i){i=i*2;j=j+1;}return j;}四.所输入的数据及运行结果1.2.五.实验心得通过此次实验,对于此次实验要求中的程序设计有了一定的认识。

相关文档
最新文档