c语言的学习秘籍之链表
刚翻出来的作品,有点低级,但希望能起到作用:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#define SLEEP() asm("sleep")
struct student *head;
struct student
{
int a;
int b;
struct student * next;
};
int n;
void add()
{
printf("请输入俩个你要储存的数字\n");
struct student *p1, *p2;
p1 = p2 = (struct student *)malloc(sizeof(struct student));
head->next = p1;
scanf_s("%d%d", &p2->a, &p2->b);
while (p2->a != NULL)
{
n = n + 1;
p1->next = p2;
p1 = p2;
p2 = (struct student *)malloc(sizeof(struct student));
scanf_s("%d%d", &p2->a, &p2->b);
}
p1->next = NULL;
}
void print(struct student*head)
{
if (head->next != NULL)
{
struct student *p1;
p1 = (struct student *)malloc(sizeof(struct student));
p1 = head->next;
while (p1 != NULL)
{
printf("%d\t%d\n", p1->a, p1->b);
p1 = p1->next;
}
}
else printf("无法执行!!!");
}
void look()
{
if (head->next != NULL)
{
struct student *p1;
p1 = (struct student *)malloc(sizeof(struct student));
p1 = head->next;
int m = 1;
printf("请输入你要查找的位置\n");
int a;
scanf_s("%d", &a);
while (m != a)
{
m = m + 1;
p1 = p1->next;
}
printf("%d\t%d\n", p1->a, p1->b);
}
else printf("无法执行!!!");
}
void gai()
{
if (head->next!=NULL)
{
struct student *p1;
p1 = (struct student *)malloc(sizeof(struct student));
p1 = head->next;
int m = 1;
printf("请输入你要修改的位置\n");
int a;
scanf_s("%d", &a);
while (m != a)
{
m = m + 1;
p1 = p1->next;
}
scanf_s("%d%d", &p1->a, &p1->b);
}
else printf("无法执行!!!");
}
void shan()
{
if (head->next != NULL)
{
struct student *p1;
p1 = (struct student *)malloc(sizeof(struct student));
p1 = head;
int m = 1;
printf("请输入你要删除的位置\n");
int a;
scanf_s("%d", &a);
while (m != a)
{
m = m + 1;
p1 = p1->next;
}
p1->next = p1->next->next;
}
else printf("无法执行!!!");
}
void zeng()/************************************************************************************/
{
if (head->next!=NULL)
{ struct student *p1, *p2, *p3;
p1 = (struct student *)malloc(sizeof(struct student));
p1 = head->next;
while (p1->next != NULL)
{
printf("%d\t%d\n", p1->a, p1->b);
p1 = p1->next;
}
printf("请输入你要储存的数据\n");
p2 = p3 = (struct student *)malloc(sizeof(struct student));
p1->next = p2;
scanf_s("%d%d", &p3->a, &p3->b);
while (p3->a!=0)
{
n = n + 1;
p2->next = p3;
p2 = p3;
p3 = (struct student *)malloc(sizeof(struct student));
scanf_s("%d%d", &p3->a, &p3->b);
}
p2->next = NULL;
}
else printf("无法执行!!!");
}
int main()/*******************************************************************************************/
{
head = (struct student *)malloc(sizeof(struct student));
head->next = NULL;
n = 0;
int a=1;
printf("***************************************************************************************************************\n");
printf("* <<输入请按1>> <<输出请按2>> *\n");
printf("* <<增加请按3>> <<删除请按4>> *\n");
printf("* <<修改请按5>> <<退出请按0>> *\n");
printf("请选择接下来的功能\n");
while (a!=0)
{
scanf_s("%d", &a);
switch (a)
{
case 0:break;
case 1: add(); break;
case 2: print(head); break;
case 3: zeng(); break;
case 4:shan(); break;
case 5:gai(); break;
default:printf("孩子不要玩了!!!"),Sleep(1000),system("cls"),printf("爸爸永远爱你!!\n");
}
if (a != 0){
printf("请选择接下来的功能\n");
}
}
printf("等待两分钟有惊喜哦!!!!\n");
Sleep(20000);
printf("让你等你就等,你傻了吧!!!sb\n");
return 0;
}
c语言的学习秘籍之链表的更多相关文章
- c语言的学习秘籍
c语言其实是一环套一环胡的,最开始的是变量,然后是数组,接着是结构体,接着是链表.(其他的是c语言的语法,那东西大多了就会了.) 学习时可以从程序在电脑里的内存看起,先了解变量,将多个变量连起来就是数 ...
- C语言范例学习03-上
第三章 数据结构 章首:不好意思,这两天要帮家里做一些活儿.而且内容量与操作量也确实大幅提升了.所以写得很慢. 不过,从今天开始.我写的东西,许多都是之前没怎么学的了.所以速度会慢下来,同时写得也会详 ...
- C语言编程学习不难学,是你没找对方法!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- C语言课程学习的总结
C语言课程学习的总结 学习C程序这门课一年了,这是我们学的第一门专业课.在大学里,C语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程.所以作为我这个计算机专业的学生来说当 ...
- [转]C语言指针学习经验总结浅谈
指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...
- C语言(函数)学习之strstr strcasestr
C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needl ...
- 【Go语言】学习资料
这段时间一直在看Go语言,6月3日Apple发布了swift发现里面竟然也有许多Go语言的影子,截至现在每天都在感觉到Go语言的强大.确实值得一学 今天在这里给园友们推荐一些Go语言的学习资料 网站 ...
- 数据结构C语言版 有向图的十字链表存储表示和实现
/*1wangxiaobo@163.com 数据结构C语言版 有向图的十字链表存储表示和实现 P165 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h> ...
- 远离go path,弃用go get,使用go mod 进行go语言的学习
标题说的是go语言的学习,因为我也没做过开发 文章要解决的仅仅是一个问题 当你使用go get 无论如何get不到所需的包的问题 第一步就是下载goland 新手极其推荐goland,因为直接使用gl ...
随机推荐
- 了解学习JS中this的指向
[转] 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问 ...
- java文件下载,上传,解压方法
1.文件下载(亲测可用) private static final int BUFFER = 2 * 1024;// 缓冲区大小(2k)private boolean isSuccess = true ...
- 记一次windows下物理迁移数据库的过程
背景: 最近因为一次设备故障,导致一台运行windows环境下的机器无法启动,里面有一个正在使用的财务数据库,该数据库也只是每月使用一次,需要把物理数据迁移出来,于是拔出了故障机器的硬盘,通 ...
- 2016huasacm暑假集训训练四 DP_B
题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/M 题意:有N件物品和一个容量为V的背包.第i件物品的费用是体积c[i],价值是w[ ...
- word页码上加横线&&word删除单页页眉
word(2010)页码上加横线 插入——>页脚(选择年刊型)——>如图 然后拖住“竖条条”将页码拖到正中间——>点中页脚右击——>选中“表格属性”——>“边框和底纹”— ...
- 在线OJ实用技巧(转载)
1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 2.有时候int型不够用,可以用long long或__int64型(两个下 ...
- Myeclipse使用DB Browser连接数据库错误:OPTION SQL_SELECT_LIMIT=DEFAULT
虽然使用Myeclipse,经过test driver可以使用, 但是不能够查询mysql数据库各个表的数据. 百度了下, 原来是驱动mysql的插件版本很低,重新下了个, 可以了. 下面是链接. ...
- linux常用命令(四)
1.压缩解压命令 gzip命令 默认为.gz格式文件 1.只能压缩文件不可压缩目录 2.不保留源文件 压缩 giz 解压 gunip tar命令 -c产生打包文件 -v显示相信打包压缩过程 - ...
- js中列表控件排序箭头,在wke中不支持的解决办法
列表中箭头,实际使用的在线css样式,wke不支持排序箭头(实际是字体)的在线css样式,可以客户端安装对应的字体,之后显示就正常了.
- python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)
1.#面向对象 #抽象接口 === 抽象类 #就是架构师给你一个架子,你们去写,如果满足不了直接报错 #python2 print("python2---抽象类".center(2 ...