博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.8日学习打卡
阅读量:5152 次
发布时间:2019-06-13

本文共 2970 字,大约阅读时间需要 9 分钟。

今天写了顺序表的一些操作:

1.求顺序表的长度。

2.输出顺序表的元素。

3.顺序表的插入。

4.顺序表的删除。

5.顺序表的查找。

6.顺序表的排序。

在写的过程中遇到了些许困难,好多都是细节错误,if后面写了分号,导致后面的语句没有按规则执行,输入少了地址符等等。

以下是我写的代码:

1 #include"stdio.h"  2 #define Maxsize 30  3 typedef struct  4 {  5     int data[Maxsize];  6     int n;  7 }Sqlist;  8  int Length(Sqlist *L)  /*求顺序表的长度函数*/   9  { 10      int i; 11      printf("请输入长度:"); 12      scanf("%d",&L->n); 13      putchar(32); 14      for(i=0;i
n;i++) 15 { 16 printf("请输入第%d个元素:",i+1); 17 scanf("%d",&L->data[i]); 18 putchar(32); 19 } 20 return L->n; 21 } 22 void print(Sqlist *L)/*输出顺序表的元素*/ 23 { 24 int i; 25 for(i=0;i
n;i++) 26 printf("%-2d",L->data[i]); 27 } 28 int insert(Sqlist *L,int x,int i)/*在顺序表中插入一个元素*/ 29 { int j; 30 if(i<0||i>L->n+1) return 0; 31 for(j=L->n;j>=i;j--) 32 L->data[j]=L->data[j-1]; 33 L->data[i-1]=x; 34 L->n++; 35 return L->n; 36 } 37 int del(Sqlist *L,int x)/*在顺序表中删除一个元素*/ 38 { 39 int i; 40 for(i=0;i
n;i++) 41 { 42 if(L->data[i]==x) 43 { 44 for(;i
n-1;i++) 45 L->data[i]=L->data[i+1]; 46 L->n--; 47 return L->n; 48 } 49 } 50 if(i>=L->n) return 0; 51 } 52 void found(Sqlist *L,int x)/*顺序表的查找*/ 53 { 54 int i; 55 for(i=0;i
n;i++) 56 { 57 if(L->data[i]==x) 58 { 59 printf("%d的逻辑位置是第:%d个\n",x,i+1); 60 break; 61 } 62 } 63 if(i>=L->n) 64 printf("Not found\n"); 65 } 66 void Sort(Sqlist *L)/*顺序表的排序*/ 67 { 68 int i,j,t; 69 for(i=0;i
n-1;i++) 70 for(j=0;j
n-1-i;j++) 71 if(L->data[j]
data[j+1]) 72 { 73 t=L->data[j]; 74 L->data[j]=L->data[j+1]; 75 L->data[j+1]=t; 76 } 77 for(i=0;i
n;i++) 78 printf("%-2d",L->data[i]); 79 } 80 main() 81 { 82 Sqlist L; 83 int length,x,i,t; 84 length=Length(&L); 85 printf("顺序表的长度是:%d",length); 86 printf("\n"); 87 printf("输出顺序表的元素:"); 88 print(&L); 89 printf("\n"); 90 printf("请输入要插入的数,和逻辑位置:"); 91 scanf("%d%d",&x,&i); 92 t=insert(&L,x,i); 93 if(t) 94 { 95 printf("插入成功\n"); 96 printf("输出插入之后的元素:"); 97 print(&L); 98 printf("\n"); 99 printf("顺序表的长度为:%d\n",t); 100 }101 else printf("插入失败\n");102 printf("请输入要删除的数:"); 103 scanf("%d",&x);104 t=del(&L,x);105 if(t) 106 {107 printf("删除成功\n");108 printf("输出删除之后的元素:");109 print(&L);110 printf("\n");111 printf("顺序表的长度为:%d\n",t); 112 }113 else printf("删除失败\n");114 printf("请输入要查找的数:");115 scanf("%d",&x);116 found(&L,x);117 printf("将顺序表的元素从大到小排序:");118 Sort(&L);119 120 }

转载于:https://www.cnblogs.com/sky666666/p/10673359.html

你可能感兴趣的文章
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
校门外的树2 contest 树状数组练习 T4
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
Program exited with code **** 相关解释
查看>>
装服务器,测试数据库,简单的maven命令
查看>>
升级Firefox8后watir-webdriver出现错误“unable to obtain stable firefox connection in 60 seconds”...
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
001.RAID简介
查看>>
投标项目的脚本练习2
查看>>
第五次实验
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>