1、1数据结构实验指导2013 / 2014 学年 第 2 学期姓 名:_学 号:_班 级:_指导教师:_潍坊学院计算机工程学院20142预备实验 C 语言的函数数组指针结构体知识一、实验目的1、复习 C语言中函数、数组、指针和结构体的概念。2、熟悉利用 C语言进行程序设计的一般方法。二、实验内容和要求1、调试程序:输出 100以内所有的素数(用函数实现) 。#include/*判断一个数是否为素数*/int isprime(int n)for(int m=2;m*m#define N 10int main()int aN=0,1,2,3,4,5,6,7,8,9,i,temp;printf(“th
2、e original Array is:n ”);for(i=0;i#define M 3#define N 4int main()int aMN,i,j,k;printf(“请输入二维数组的数据:n”);for(i=0;iaik)k=j;for(j=0;jint main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int *p;for(p=a0;p#define N 10;struct studentchar num6; /*学号*/char name8; /*姓名*/int score3; /*成绩*/float avr; /*平均成绩 */stuN;
3、int main()int i,j,max,maxi,sum;5float average;for(i=0;imax)max=sum;maxi=i;average/=10;printf(“ 学号 姓名 成绩 1 成绩 2 成绩 3 平均分n);for(i=0;i#include#define ERROR 0#define OK 1#define INIT_SIZE 5 /*初始分配的顺序表长度*/#define INCREM 5 /*溢出时,顺序表长度的增量*/typedef int ElemType; /*定义表元素的类型*/typedef struct SqlistElemType *sl
4、ist; /*存储空间的基地址*/int length; /*顺序表的当前长度*/int listsize; /*当前分配的存储空间*/Sqlist;int InitList_sq(Sqlist *L); /* 初始化顺序表 L,并将其长度设为 0 */int CreateList_sq(Sqlist *L,int n); /* 构造顺序表的长度为 n */int ListInsert_sq(Sqlist *L,int i,ElemType e);/*在顺序线性表 L中第 i个 元素之前插入新的元素 e */int PrintList_sq(Sqlist *L); /*输出顺序表的元素*/in
5、t ListDelete_sq(Sqlist *L,int i); /*删除第 i个元素*/int ListLocate(Sqlist *L,ElemType e); /*查找值为 e的元素*/int InitList_sq(Sqlist *L)L-slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType);if(!L-slist) return ERROR; L-length=0; L-listsize=INIT_SIZE; return OK; /*InitList*/8int CreateList_sq(Sqlist *L,int n)ElemT
6、ype e;int i;for(i=0;ilength;i+)printf(“%5d“,L-slisti-1);return OK;/*PrintList*/int ListInsert_sq(Sqlist *L,int i,ElemType e)int k;if(iL-length+1) return ERROR; if(L-length=L-listsize) L-slist=(ElemType*)realloc(L-slist,(INIT_SIZE+INCREM)*sizeof(ElemType);if(!L-slist) return ERROR; L-listsize+=INCREM
7、; for(k=L-length-1;k=i-1;k-) L-slistk+1=k;L-slisti-1=e; L-length+; return OK;/*ListInsert*/*在顺序表中删除第 i个元素*/int ListDelete_sq(Sqlist *L,int i) if(iL-length) return ERROR;for(p=i-1;plength-1;p+)9L-slistp=L-slistp+1;L-length-;return OK;/*在顺序表中查找指定值元素,返回其序号*/int ListLocate(Sqlist *L,ElemType e) int main
8、()Sqlist sl;int n;printf(“please input n:“); /*输入顺序表的元素个数*/scanf(“%d“,if(n0)printf(“n1-Create Sqlist:n“);InitList_sq(CreateList_sq(printf(“n2-Print Sqlist:n“);PrintList_sq(elseprintf(“ERROR“);return 0; 算法分析与运行结果please input n:51-Create Sqlist:input data 10input data 25input data 38input data 43input
9、 data 562-Print Sqlist:0 5 8 3 6Press any key to continue102、为第 1题补充删除和查找功能函数,并在主函数中补充代码验证算法的正确性。算法代码:int ListDelete_sq(Sqlist *L,int i) int p;if(iL-length) return ERROR;for(p=i-1;plength-1;p+) L-slistp=L-slistp+1;L-length-;return OK;/*在顺序表中查找指定值元素,返回其序号*/int ListLocate(Sqlist *L,ElemType e) int i=0;while(ilength)if(ilength)return(i+1);elsereturn(-1);