C语言
wyp784035821
这个作者很懒,什么都没留下…
展开
-
输入几个数(含有负数,小数),将他从小到大排序
第一种,推荐:#include int sequence(float a[], int num){ int i,j; float tmp; for(i = 0; i { for(j = i + 1; j { if(a[i] > a[j]) { tmp = a[i]; a[i] = a[j];原创 2018-01-30 21:54:45 · 1195 阅读 · 0 评论 -
C语言程序之约瑟夫环
首先我们了解一下约瑟夫环的历史 公元66年,约瑟夫不情愿地参与领导了犹太同胞反抗罗马统治的起义,后来起义失败,他和一些宁死不降的起义者被困于一个山洞之中。罗马将军韦斯巴芗(Vespasian)派人来劝降,他主张投降,其余的人不答应,并以死相逼。最后,约瑟夫提议,与其死在自己的手上,不如死在彼此的手上。据说,他提出用约瑟夫环方法决定生死(实际上是所有人抽签,每一轮抽到1的人把抽到2原创 2017-11-14 22:25:22 · 324 阅读 · 0 评论 -
c语言之最大公约数和最小公倍数
这个是初学者都经常会遇到的题目,今天又做了一次,发上来与君共勉#include int main(){ int n,m; printf("input two numbers:"); scanf("%d %d",&n,&m); int i,j,mix,a,b,max; mix = (n max = (n > m)?n:m; for(i = 1; i原创 2017-11-16 22:17:36 · 309 阅读 · 0 评论 -
c语言初学者题目
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。#include int main(){ int i,j,k,n; for (i = 100; i { j = i / 100; k = i / 10 % 10; n =原创 2017-11-21 21:36:55 · 658 阅读 · 0 评论 -
C语言之初学者之趣题
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制看到题目第一眼我是想用for语句来实现这个程序的,毕竟只需要总结一个公式sum += (n - i -1)*a*10^(i-1)就可以算出sum,然后我就开始写了下面的程序。#include int main(){原创 2017-11-20 23:10:42 · 300 阅读 · 0 评论 -
通讯录草稿
这几天都在写通讯录程序。。。第一次写这么长的程序,不管从思路上还是从技术上我都有很多的不足之处,今天把大致草稿写好了,但还有一些要求没有实现,明天继续完善。。。通讯录说明文档(一)语言:c语言格式: 编号 姓 名 住址 电话 201701 *** xxxx 183****5668要求原创 2017-11-24 21:47:34 · 256 阅读 · 0 评论 -
C语言之通讯录
前几天的通讯录草稿的最终版本contact.h文件#ifndef _CONTACTS_H_#define _CONTACTS_H_#define SUCCESS 1000001#define FAILURE 1000002struct contact{ int id; char name[10]; char address[20]; char原创 2017-11-29 20:56:26 · 489 阅读 · 0 评论 -
Linux文件编程1
系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务。 程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。系统调用并不是直接与程序员进行交原创 2017-12-06 20:18:21 · 166 阅读 · 0 评论 -
Linux进程控制编程
进程的定义;进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。程序与进程的区别:程序是放到磁盘的可执行文件,进程是指程序执行的实例。进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制进程是暂时的,程序使长久的:进程是一个状态变化的过程,程序可长久保存进程与程序组原创 2017-12-06 20:35:52 · 161 阅读 · 0 评论 -
sprintf的用法
写聊天室项目用到了这个函数说明1:该函数包含在stdio.h的头文件中,使用时需要加入:#include 说明2:sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。说明3:sprintf函数的格式:int s转载 2017-12-20 16:51:08 · 191 阅读 · 0 评论 -
直接选择排序
直接选择排序的基本思想:N个记录的直接选择排序后可以经过N-1次直接排序后得到的结果#include void SelectSort(int *a, int n){ int i, j; int temp = 0; int flag = 0; for (i = 0; i { temp = a[i];原创 2018-01-28 22:09:59 · 157 阅读 · 0 评论 -
联合体题目
1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。 2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。#include <stdio.h>union{ int i; char x[2]...原创 2018-03-03 15:59:52 · 452 阅读 · 0 评论 -
不使用库函数实现strcpy,strlen函数
#include <stdio.h>char* strcpy(char * strDest, const char* strSrc){ int i = 0; if((strDest == NULL) || (strSrc == NULL)) //判断两个空间的有效性 { return NULL; } //char* strDestCopy = strDest; ...原创 2018-03-03 16:19:49 · 1029 阅读 · 0 评论 -
用递归的方法求n的阶乘
当n = 1 时,n = 1;当n > 1 时,n = n *(n - 1);#include <stdio.h>int rec(int n){ int t; if(n == 1) { t = 1; } else { t = n * rec(n - 1); } return t;}int main(){ int rec(int n); ...原创 2018-03-05 20:14:51 · 641 阅读 · 0 评论 -
Linux学习之路
这两天学习了gcc工具链,make和Makefile,gdb调试工具,shell使用基础 gcc工具链 GCC即 GNU C Compiler 。GCC已经不仅仅能支持C 语言;还支持 Ada 语言、C++语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的Merc原创 2017-11-08 21:37:47 · 122 阅读 · 0 评论 -
Linux学习日志
学习Linux的第一天,首先我们需要了解什么是嵌入式系统 从技术角度来讲, 嵌入式系统以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。是将应用程序、操作系统和计算机硬件集成在一起的系统。而从系统角度来说,嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。接着又学习了Linux的目录原创 2017-11-06 21:55:19 · 216 阅读 · 0 评论 -
冒泡排序
简单的冒泡排序,没什么好说的#include void BubbleSort(int array[], int len){ int i,j,tmp,exchange; for(i = 0; i { exchange = 0; // 增加一个exchange参数 for(j = len - 1; j >= i; j--) { if(arr原创 2018-01-24 09:44:06 · 145 阅读 · 0 评论 -
使用sizeof计算联合体(union)的大小
联合体的大小取决于他所有成员中占用空间最大的一个成员的大小。并且对于复合数据类型,如union,struct, class 的对齐方式为成员中最大成员的对齐方式。#include using namespace std;union u //u的大小是其中最大的double类型成员a,所以sizeof(u) = sizeof(double)原创 2018-02-01 09:47:19 · 12565 阅读 · 0 评论 -
如何在scanf中输入带空格的字符串
写聊天室时,想输入带有空格的字符串(个性签名)C语言中scanf()函数提供的“%[]”格式串可以用来进行多个字符的输入,并对结束符进行自定义。 对于%[]还可以用^+任意字符(包括 eof)来结束字符串的输入,如%[^EOF]就是直到有EOF 输入,字符串才中止。参考代码:12345678#include void main转载 2017-12-27 17:47:52 · 4942 阅读 · 0 评论 -
c语言字符串和指针十个问题
预习了一些数组和指针的内容,书上有几个问题,整理了下来。。。另外在网上也找了找,也一起补充了进来1-数组的下标是从0开始的吗?是,对于数组a【max】来说,他的第一个和最后一个元素分别是a【0】和a【max-1】。2-可以使用数组后面第一个元素的地址么?可以,可以使用数组后面第一个元素的地址,但不能查看该地址的值。3-为什么要小心对待位于数组后面的那些元素地址呢?原创 2017-11-10 21:29:20 · 281 阅读 · 0 评论 -
sizeof和strlen的区别
区别如下1、sizeof 是操作符,strlen 是函数。2、sizeof操作符的结果类型是size_t,它在头文件typedef为unsigned int 类型,该类型保证能容纳所建立的最大对象的字节大小。3、sizeof可以用类型做参数,strlen 只能用char * 做参数,并且必须以“\0”结尾。4、数组做 sizeof 的参数不退化,要是传递给strlen 则退化为指针。5、大部分编译...原创 2018-01-26 10:19:04 · 149 阅读 · 0 评论 -
编写一个程序,实现字符串逆序
#include #include #include int main(){ char str[100]; printf("请输入一个字符串:"); gets(str); int i = 0; char ch; int len = strlen(str); for(i = 0; i {原创 2018-01-26 14:36:43 · 3093 阅读 · 0 评论 -
有一分数数列:1/2,1/4,1/8.........用函数调用的方法,求值
#include double sum(int n){ double sum = 0; int i; for(i = 1; i { sum = sum + 1/(i * 2.0); } return sum;}int main(){ int n; printf("请输入要加几次\n"); scanf("%d",&n);原创 2018-01-26 21:56:04 · 1382 阅读 · 1 评论 -
Udp聊天室客户端
#ifndef _CHATING_H_#define _CHATING_H_#include #include #include #include #include #include #include #include #include #include #include #include #include #include #def原创 2017-12-29 14:53:29 · 396 阅读 · 0 评论 -
Udp聊天室服务器
#ifndef _UDP_NET_SOCKET_#define _UDP_NET_SOCKET_#include #include #include #include #include #include #include #include #define PORT 8888struct userinfo{ int fla原创 2017-12-29 14:51:07 · 396 阅读 · 0 评论 -
Linux网络编程
Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现。对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介绍一般分为四层的Internet模型。TCP/IP 实际上一个协同工作的通信家族,为网络数据通信提供通路。为讨论方便可TCP/IP 协议组大体上分为三部分: 1、Inte原创 2017-12-10 22:57:57 · 138 阅读 · 0 评论 -
进程与线程,信号量与互斥量
进程与线程1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系 一个线程原创 2017-12-09 17:59:37 · 455 阅读 · 0 评论 -
Linux进程间通信4-6
Linux使用的进程间通信方式包括:1、管道(pipe)和有名管道(FIFO)2、信号(signal)3、共享内存4、消息队列5、信号量6、套接字(socket)本文介绍4-6的通信方式4、消息队列Unix早期通信机制之一的信号能够传送的信息量有限,管道则只能传送无格式的字节流,这无疑会给应用程序开发带来不便。消息队列(也叫做报文队列)则克服原创 2017-12-07 12:00:59 · 138 阅读 · 0 评论 -
Linux进程间通信1-3
Linux进程间通信的目的:1.数据传输 一个进程需要将它的数据发送给另一个进程2.资源共享 多个进程之间共享同样的资源3.通知事件 一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件4.进程控制 有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变原创 2017-12-07 11:39:26 · 162 阅读 · 0 评论 -
回溯算法 八皇后
#include <stdio.h>#include <stdlib.h>#define max 8 int queen[max], sum = 0; //queen数组内放的是皇后的纵坐标void show() //打印输出{ int i; for(i = 0; i < max; i++) { printf("(%d,%d)",i...转载 2018-11-27 02:30:35 · 157 阅读 · 0 评论