1.进制转换

#ifndef __HEAD_H_
#define __HEAD_H_#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef int datatype;
typedef struct node
{union {int len;datatype data;};struct node *next;
}*linkstack;
linkstack create_head();
linkstack create_node();
int linkstack_head(linkstack l,datatype e);
int delete_head(linkstack l);
void output(linkstack l);
linkstack free_sapce(linkstack l);
#endif
#include "head.h"int main(int argc, const char *argv[])
{int num=0;int n=0;linkstack p=create_head();printf("请输入要转换的进制数:");scanf("%d",&num);printf("请输入要转换的进制:");scanf("%d",&n);while(num){linkstack_head(p,num%n);num=num/n;}output(p);puts("");free_sapce(p); return 0;
}
#include "head.h"
/** function:    在堆区申请空间* @param [ in]* @param [out]* @return      成功返回地址,失败返回NULL*/
linkstack create_head()
{ linkstack l=(linkstack)malloc(sizeof(struct node));if(l==NULL)return NULL;l->len=0;l->next=NULL;return l;
}
/** function:    创建普通节点* @param [ in] * @param [out] * @return      成功返回地址,失败返回NULL**/
linkstack create_node()
{linkstack p=(linkstack)malloc(sizeof(struct node));if(p==NULL)return NULL;p->data=0;p->next=NULL;return p;
}
/** function:    头插* @param [ in] 栈 插入的值* @param [out] * @return      成功返回0,失败返回-1*/
int linkstack_head(linkstack l,datatype e)
{if(l==NULL){printf("插入失败\n");return -1;}linkstack s=create_node();if(s==NULL)return -1;s->data=e;s->next=l->next;l->next=s;l->len++;return 0;
}
/** function:    头删* @param [ in] 链栈* @param [out] * @return      成功返回0,失败返回-1*/
int delete_head(linkstack l)
{if(l==NULL||l->len==0){printf("删除失败\n");return -1;}linkstack q=l->next;
//  printf("出栈的数据是:%d\n",q->data);l->next=q->next;free(q);q=NULL;l->len--;return 0;
}
/** function:    遍历输出* @param [ in] 链栈* @param [out] * @return      无返回值*/
void output(linkstack l)
{puts("");linkstack p=l;while(p->next){p=p->next;printf("%d",p->data);}puts("");
}
/** function:   空间释放* @param [ in] 链栈* @param [out] * @return      成功返回地址*/
linkstack free_sapce(linkstack l)
{if(l==NULL)return NULL;int n=l->len;for(int i=0;i<n;i++){delete_head(l);}free(l);l=NULL;return l;
}

20230403华清远见作业相关推荐

  1. 20230330华清远见作业

    作业1:单链表的按位置修改 思路:参数:L pos e 1,判断链表是否存在 2,判断链表是否为空 3,判断位置是否合法 4,找到pos起名字p 5. 修改p的数据域:重新赋值 作业2:单链表的按元素 ...

  2. 20230322华清远见作业

    作业1:定义有参函数实现,主调函数中输入两个数据,通过函数调用,交换该两个变量的值,主调函数输出交换后的结果 #include<stdio.h> #include<stdlib.h& ...

  3. 20230317华清远见作业

    作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入 #include<stdio.h> #include<string.h> #includ ...

  4. 20230319华清远见作业

    作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入 #include<string.h> #include<stdio.h> #includ ...

  5. 20230327华清远见作业

    1.在堆区申请2个字符类型的大小为20字节的空间. 1> 定义函数,实现在堆区申请空间 2> 定义函数,输入两个字符串 3> 定义函数,计算两个字符串的长度[非函数] sizeof_ ...

  6. 20230329华清远见作业

    #include "head.h"int main(int argc, const char *argv[]) {seqlist *list =create();//循环在尾部插入 ...

  7. 20230223华清远见作业

    仿照str系列函数,完成自定义的mystrlen .mystrcmp.mystrcpy,mystrcat. mystrlen #include<stdio.h> #include<s ...

  8. 20230331华清远见作业

    #include "head.h" int main(int argc, const char *argv[]) {doublelink l =create_head();int ...

  9. 阶段总结:华清远见毕业总结

    在毕业之际,苦于自身水平不足,不够完善的技能不足以在就业形势严峻的今天找到一份适合的工作,由于我是一个电子信息工程专业出身的学生,在学校里通过专业选修等课程接触到了单片机和嵌入式等课程,从而产生了一点 ...

最新文章

  1. 编写一个程序,打印输入中各个字符出现频度的直方图
  2. 杨百万建议股民可以从以下几个方面进行
  3. lua 获取时分秒_PMON学用命令
  4. 深入理解connect by
  5. python合并数组输出重复项_python进行数组合并的方法
  6. 程序显示文本框_vb程序语言题库
  7. VMware View:VMware 专为 Kindle Fire 打造的视图客户端
  8. flash乱码解决方案
  9. 按需使用vue-cli-plugin-element插件
  10. 【Jquery练习】tab栏切换
  11. 阿里P9手写的Java核心开发手册(2022版)覆盖P5到P8所有技术栈
  12. HyperV虚拟机连接时主机无法连接网络 2022-06-13
  13. 某易—将军令动态刨析算法(1)
  14. Geohash应用——附近乡镇信息挖掘(提升检索召回与准确)
  15. 微信小程序轮子 - 调起摄像头拍照并在页面预览(身份证拍照 / 人像拍照等等)
  16. Unity 3D 一些对Scene窗口的调整以及摄像头的调整技巧
  17. 转载 电容的ESR
  18. 如何防止跨站点脚本攻击
  19. 我说CMMI2.0之过程管理
  20. sql语句优化技巧 sql 语句技巧

热门文章

  1. 基于PHP+小程序(MINA框架)+Mysql数据库的共享停车位预约小程序系统设计与实现
  2. linux 用户及密码
  3. html 美化table,纯CSS美化HTML的Table
  4. matlab mupad打开,MATLAB–Mupad 初学者(一)~(三)
  5. 分布式缓存中间件:Redis
  6. Linux搭建GitLab私有仓库,并内网穿透实现公网访问
  7. centos7环境变量设置
  8. 利用python进行数据分析在线阅读-利用python进行数据分析--(阅读笔记一)
  9. 虚拟现实在招聘中的应用
  10. removing-删除