自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 简易房贷月供计算器

下面是用C语言编写的简易房贷月供计算器,供参考。#include "stdio.h" #include "math.h"int main(){ double amountOfLoan,annualInterest,repaymentPeriod; //input double monthlyPayments; //output double monthlyInterest,nu...

2018-10-12 17:12:17 3070 2

原创 C语言求余运算符的使用

C语言的算数运算符中最有特点的是求余运算符%,它可以应用到很多问题的求解中,下面是几个例子。例1: 输出1到100的整数,要求每行输出5个。每行输出5个,意味着在5,10,15,20…等5的倍数的数字后面需要输出换行,而这些数的共同的特点是能被5整除,余数为0,描述成条件即为:i%5==0。#include "stdio.h"int main(){ int i; ...

2018-10-10 11:55:25 54766

原创 Spring依赖注入

内容主要来自《Spring实战》第二章,区别在于自己写了一个测试类,对于初学者更容易理解依赖注入。先定义两个接口:1. CompactDisc.javapackage soundsystem;public interface CompactDisc { void play();}2. MP.java  //书上用的是MediaPlayer接口package ...

2018-09-21 17:00:53 465 1

原创 Scratch中设置物体的中心点

点击绘图编辑器中右上角的十字形按钮,可以为物体设置中心点。点击十字形按钮后,编辑器中间出现十字形坐标:然后用鼠标点击你想设为中心点的地方,比如猫的尾巴,这时坐标消失,物体会发生移动(猫的尾巴会移到中心,因此整个猫会向右上移动):再次点击右上的十字形按钮,我们会看到十字形坐标出现,坐标中心在猫的尾巴上。设置了中心点以后,可以编程让小猫绕着中心点旋转:如果spr...

2018-09-09 15:51:01 15356 1

原创 补码

        数值用补码来表示的意义在于:将加减法能够统一起来,减法也是按照加法去做,加减法只需要一个加法器就够啦。        对于钟表的例子,过了12点就抛弃掉12。对于8位表示的整数,过了2的8次方(即256)就把256抛弃。我们看-3的补码。随便拿一个数比如4,4减去3等于4加上多少呢?       4减3等于1,而做加法的话,就是要加到257(抛掉256就剩1),即4要加253。也就...

2018-03-14 11:41:13 1229

原创 相关与因果关系

相关表示两个变量之间存在关联,但并不是因果关系。《爱上统计学》一书给了一个例子:在美国中西部的一个小镇,地方警察局局长发现冰淇淋消费量越多,犯罪率就越高。这个例子中,冰淇淋消费量和犯罪率是正相关的,但并不意味着冰淇凌消费的增多导致了犯罪率的上升,更不可能通过减少冰淇凌的销售来降低犯罪率。事实上,存在某个变量同时和冰淇淋消费量、犯罪率相关,这个变量就是室外温度。当室外气温变暖,如在夏天,就会有更多犯...

2018-02-09 15:26:04 10565

原创 Pearson相关系数、余弦相似度、修正余弦相似度

Pearson相关系数刻画变量间线性关系的强弱。余弦相似度,指通过计算两个向量的夹角余弦值来评估它们的相似度。修正余弦相似度,指中心化(减去平均值)后再求余弦相似度。1. 从数学角度看,给定向量X和Y,Pearson相关系数和修正余弦相似度的计算是相同的,它们的关系参考下面的链接:               https://www.cnblogs.com/tracer-dhy/p/5808323...

2018-02-08 09:48:15 18069 2

原创 蚂蚁金服如何开垦农村金融市场

最近读了《蚂蚁金服—从支付宝到新金融生态圈》一书,该书的第八章讲述了蚂蚁金服在开拓农村金融领域所做的工作。我把其中的一些要点摘录下来和大家分享(仅供学习交流用,无任何商业目的)。1.  支付先行 农村金融市场的现状:农村社会信用体系缺失,农户信用难以在征信系统中体现,而且涉农贷款风险高、回报率低,农村社会担保体系不健全,金融机构为了降低不良资产率,不倾向于直接对农户贷款。总结下来就是“银行放贷怕收...

2018-02-08 09:45:31 4897

原创 北大在线测试系统(POJ)第1002题

原题请参考:http://poj.org/problem?id=1002  这个题目我写了好几个版本的C程序,虽然都Accepted,但普遍用时较多,还需要进一步优化。下面这个程序是其中的一个,本来是想空间换时间,结果发现用时也超过了700MS。基本思想是:开辟一个大数组,数组元素的下标对应电话号码、元素值为该号码出现的次数。每读一个号码,号码对应的元素值加1。最后依次输出元素值大于1的数组下

2018-02-04 21:05:04 2011

原创 C语言练习题

1. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?2.  已有一个排好序的整型数组,今输入一个整数,要求按原来排序的规律将它插入数组中。3.  编一程序,将两个字符串连接起来,不要用strcat函数。4. 将一个二维数组行和列元素互换,存到另一个二维数组中。例如,将一个3行4列的二维数组a行列互换后,存到一个4行3列的二维...

2017-12-24 18:51:25 4165

原创 推荐给喜欢挑战编程的学生

喜欢编写程序的同学可以去北大ACM网站注册(http://poj.org/),里面有几千道编程题目,每道题目都有排名,还有一些在线编程竞赛可以参加。闲来无事,挑战一把。

2017-12-12 11:07:27 449

原创 数组的灵活应用(二)

题目:(第八章课后题8)假设有40个学生被邀请来给餐厅的饮食和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),编程统计并按如下格式输出餐饮服务质量调查结果。Grade     Count      Histogram1          5        *****2         10        **********3          7

2017-05-04 20:01:52 6124

原创 一道与死锁有关的题目

题目:    假定某计算机系统有3个R1类和4个R2类互斥使用资源,它们被P1、P2、P3、P4等4个进程共享,且每进程均以“申请R1→申请R2→申请R1→释放R1→释放R2→释放R1”的顺序使用R1和R2类设备。若系统采用非抢占式调度策略,请问:系统运行过程中是否可能产生死锁?如果不可能产生死锁,请说明原因;否则,请列举一种情况,并画出表示死锁状态的资源分配图。 解答:    系

2017-03-25 22:02:07 1613

原创 C语言fflush函数的移植问题

在C语言程序中,字符数据的输入很容易出错,尤其是和其它类型的数据混在一起时。例如下面的程序:# include “stdio.h”int main(){int a;char c;scanf(“%d”,&a);c= getchar();printf(“c = %c\n”, c); return 0;}        运行时,当输入一个整数后回车,则程序马上

2017-03-23 17:55:50 793

原创 手机App通过http协议从web服务器上获取json格式的数据

本实验制作了一个手机app,该app通过http协议从web服务器上获取json格式的数据并显示。测试用的手机和web服务器在同一个wifi网络中,手机的IP地址为192.168.1.3,web服务器搭建在一个笔记本电脑上,IP地址为192.168.1.2。 一、搭建web服务器,步骤如下:    1.下载安装xampp(本机装在D:\xampp下)。    2.由于端口往往有冲突

2017-03-22 18:15:17 8486 1

原创 用ScrollView实现RadioGroup的滚动

最近在制作一个app,其中一个活动使用了RadioGroup控件,该控件包含了几十个RadioButton供用户选择,这么多的RadioButton无法显示在一个页面内,大多数超出了页面的范围,需要滚动显示。刚开始时,只是把RadioGroup控件放在了linearlayout布局内,但是这种情况下无法滚动显示。后来我把linearlayout放在一个ScrollView控件内,所有的RadioB

2017-03-21 22:07:24 2559

原创 用cat命令生成软盘镜像文件

在查看geekos/src/project0/build/makefile文件时,看到如下两句:     fd.img : geekos/fd_boot.bin  geekos/setup.bin  geekos/kernel.bin     cat  geekos/fd_boot.bin  geekos/setup.bin  geekos/kernel.bin > $@

2017-03-20 18:06:42 1375

原创 Xcode中写C程序的问题

大多数时候,我都在windows和linux下编写c程序,今天换作在Mac OS下写。安装了Xcode,然后用“Command line tool” 模板创建了一个C project。 在main.c中写了一个如下计算圆面积的小程序。#include "stdio.h"int main(){    float r, area;    printf("Please inp

2017-03-12 22:53:08 4172

原创 C语言函数嵌套定义问题

几乎所有的C语言教材上都说C语言函数可以嵌套调用,但不可以嵌套定义。实际上,函数能否嵌套定义与编译器有关,在GCC编译器下嵌套定义没问题,可以正常运行,我在code blocks 和 Dev C++两个IDE(两者都用GCC)下测试了如下两个程序,都没问题:1.main函数中的嵌套定义。#include "stdio.h"int main(){int add(int a,int

2017-03-04 21:52:37 24382 1

原创 程序的编译和链接

下面的例子用于帮助理解程序编译和链接。一个C语言源程序包括两个文件:main.c 和fun.c,如下://main.c#include "stdio.h"extern int add(int a,int b);int main(){         int a,b,result;         printf("Pleaseinput a & b\n");   

2016-10-31 17:48:22 664

原创 指针小结

随着课程的深入,知识点越来越多,不少同学开始迷惑了,尤其是学了指针以后,更加混乱了。指针似乎和谁都能扯上关系: 指向变量的指针、指向函数的指针、指向数组的指针、指向字符串的指针、返回指针值的函数、指针数组等等。我在这里把一些重要的概念进行小结,希望能起到理清思路的作用。重点理解不同指针的主要用途和优势。 1.指向变量的指针1.1 定义:    int *p, a;    p =

2016-06-15 08:23:42 1091

转载 C语言程序可以没有main函数

学习C语言的同学都知道,每个C程序要有一个main函数,程序从main函数开始执行,在main函数中结束。但事实上,C程序也可以没有main函数,或者说自己可以指定入口函数。下面这篇文章介绍了如何实现这一过程。这篇文章转自:http://www.codeweblog.com,作者不详。学习这个内容对程序设计没啥影响,但能更深入地了解程序编译和链接的原理。     这篇文章主要介绍了C语言之

2016-06-12 13:10:27 17474

原创 C语言实现字符串的查找和替换

常用字处理软件或者编辑器都提供字符串的查找和替换功能,本文描述如何借助C语言的字符串处理函数来实现字符串的查找和替换功能。    先说查找,字符串的查找主要使用strstr函数,其原型为:char * strstr(char * str1, char * str2),函数的功能是在str1中查找str2,如果str2是str1的子串,则返回str2在str1中第一次出现的位置,否则返回空指针。

2016-06-02 15:19:42 100533 9

原创 编程读取ELF文件头

一个C语言源程序(.c文件)经过汇编以后生成目标文件(.o文件),目标文件再经过链接生成可执行文件。在linux系统中,目标文件和可执行文件都是ELF格式的,了解ELF文件的结构对于理解程序的编译、链接和装载运行至关重要。ELF文件的格式如下图所示,以文件头(ELF Header)开始,后面跟着代码段(.text)、数据段(.data)等。 ELF Header

2016-05-29 10:54:03 7821

原创 大数乘法运算

第8章课后第18题要求“编程计算并输出1~40之间所有数的阶乘”。40的阶乘远远超过了长整型所能表示的范围,因此该题目涉及到大整数的存储和大整数乘法运算问题(也称作高精度运算)。大整数存储的解决方案就是把大整数存储到一个数组中,每个数组元素存储该数的一位(也可以是多位数字)。在阶乘这个问题中,阶乘的值逐渐增大,变成一个大整数,因此我们把阶乘的值存储到一个数组中。比如8的阶乘等于40320,在数组中

2016-05-19 16:55:22 2074

原创 C语言数组元素下标为何从0开始

很多同学可能在学习数组时会有这个疑问,下标为什么不从1开始呢?从1开始不是更符合大家的日常习惯吗?生活中我们通常说第1个,而不是第0个。的确,有些计算机语言如早期的Pascal语言,数组元素的下标是从1开始的。难道是C语言故意要与众不同?要弄清楚这个问题,得先看一下计算机底层是怎样处理数组元素的。我们先编写了一个小程序,然后在visual studio中对其进行了反汇编。源程序和反汇编后的部分

2016-05-06 11:24:51 23217 4

原创 数组的灵活应用

数组是一种重要的数据结构,用来存放同类型的若干个数据。由于在内存中这些数据连续存放,所以可以用下标进行快速访问。灵活应用数组经常可以起到简化程序,提高效率的作用。下面我们以教材上的一道课后题为例来说明。    例:在海军节开幕式上,A、B、C三条军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共听到

2016-05-02 11:18:27 1361

原创 用switch语句制作菜单 (二)_引入数组

在前面的文章《用switch语句制作菜单》中,我们定义了四个函数分别求平均成绩、找最高成绩、统计不及格人数和统计80分以上人数。在四个函数中,都有打开文件、读文件、关闭文件的操作。当操作次数多,文件中数据量大时,这是一种非常低效率的做法,因为磁盘操作是一种耗时的过程。因此,我们有必要更新程序,找到新的方法来减少文件操作的次数。    在原来程序的每个函数中,只是定义了一个变量score来存储成

2016-05-01 09:43:23 3122

原创 函数声明

本文将C语言的函数声明在这里做一总结。尤其注意同一工程中多个文件间函数调用和声明的关系,很多C语言的教材上没有涉及此话题。 1.目的:    函数声明的目的是告诉编译器被调用函数的返回值类型、参数个数及参数类型,以便编译器检查函数调用语句的合法性。 2.语法:    函数声明的语法格式通常与函数定义的头部是一致的,我们把函数定义的头部拷贝下来,在后面加个分号就是函数声明语句

2016-04-27 11:00:49 2944

原创 在Dev C++中制作和使用静态链接库

C语言提供了大量的库函数,这些库函数以静态链接库的形式存放在安装目录的lib文件夹里(.a为后缀的文件)。这些库函数可以被我们的程序反复使用,比如printf,scanf等。如果你自己定义的函数,在很多程序中要反复使用,或者需要和别人共享,也可以将这些函数制作成静态链接库,然后在其它程序中调用这些函数,就好像使用库函数一样。本文讲述如何在Dev C++平台中制作和使用静态链接库。 一、

2016-04-25 22:10:44 14959 4

原创 素数探求

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。     教材第七章的实验题目是素数探求,共包括6个任务,其中第一个任务就是编写函数来判断一个正整数是不是素数。判断一个数是不是素数是一个非常经典的题目,很多教科书上将它作为例题讲解。在上机的时候,发现不少同学在写这个程序时存在问题。因此,本文从学生程序的错误出发,循序渐进,讨论这个函数的几种写法。    下面是某些学

2016-04-22 21:14:46 6976

原创 break和return

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。     在C语言中,break语句有两个作用:一是终止switch语句,二是终止循环语句。return语句也是两个作用:一是返回值,而是终止函数的执行。在上课的过程中,发现有些同学对这两个语句的使用还不是很熟练。本文以求两个正整数的最小公倍数为例,学习break和return语句的使用。例:编写求两个正整数的最小公倍

2016-04-21 10:35:16 765

原创 位运算与字母大小写转换

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。    在读王爽老师的《汇编语言》时,看到了用and 和or指令处理字母大小写转换的例子。and 和or是汇编语言中按位与和按位或操作的指令,对应C语言中的&和|操作。本文把这个例子的C语言版在这里重复一下,以便理解和扩充位运算的应用。    我们知道大小写字母的ASCII码值差32,因此我们通常采用直接加减32的方法

2016-04-21 09:01:21 5608 1

原创 指定printf输出域宽

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。     每个有用的C程序中都用到了printf函数,它可以根据我们指定的格式符来输出数据。很多初学者只关心%d,%f,%c等格式符,却忽略了格式修饰符的使用。事实上,合理地使用格式修饰符会给输出带来很多方便。本文只讨论一种格式修饰符,即输出域宽。下面的例子展示了指定输出域宽的好处。    教材第六章课后习题6.1

2016-04-14 09:31:44 14924

原创 调试程序的利器—printf

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。    当排除了所有的语法错误,但运行结果却不正确时,很多初学者往往束手无策,只好求助老师了,“老师,我这个程序没错,但结果不正确”,这是在上机课上经常听到的声音。初学者缺乏经验,也缺乏耐心。殊不知每个程序员都是在不断的和错误斗争的过程中成长起来的,调试程序的过程有时候是很痛苦的,但发现错误原因的那一刻,幸福却是满满的。

2016-04-08 11:05:33 1988

原创 学会优化你的程序

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。程序优化是个很大的话题,一些经典编程书籍上对此已做过探讨。在这里,我主要是针对学生作业中的一些问题进行讨论,尽量想办法减少程序中的冗余、使程序变得更简练,可以说是比较初级的程序优化。更高级的优化主要是针对编译器进行的,如何写代码使编译出来的程序执行效率更高,以后抽空再讨论。例: 第五章课后第10题:编程从键盘输入某年某月,...

2016-04-07 15:05:19 698

原创 用switch语句制作菜单

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。switch语句可以用来在字符界面下制作菜单。给每个菜单项指定一个编号,用户通过输入编号来选择菜单项,switch语句判断用户输入的编号并执行相应的任务。下面我们通过一个例子来学习制作的过程。例:编写一个简单程序对某门课的成绩进行统计分析,包括求平均成绩、找出最高成绩、统计不及格的人数和统计80分以上的人数。要求将这些功能...

2016-04-02 22:13:27 19263 4

原创 位运算—统计文本文件中汉字的个数

声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。    C语言进行底层开发时经常会用到位运算,比如操作系统中的各种描述符,不同的位代表着不同的含义,经常需要按位赋值。关于位运算的细节,教材上都有,这里不再重复。这里只是举例来学习位运算的使用。例:统计一个中英文混合的文本文件“maden.txt”中汉字的个数。分析:    文本文件中每个英文字符占一个字节,最高位

2016-04-01 09:31:22 1726

原创 错误与断言

首先声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。    在《C语言字符型数据(一)》中,我们对文本文件中的内容进行了简单的加密处理。程序如下所示:#include "stdio.h"int main(){   char ch;   freopen("original.txt","r",stdin) ; //输入输出被分别重定向到两个文件。   f

2016-03-31 22:08:36 788

原创 C语言字符型数据(二)— 汉字的读写

首先声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。在上一篇文章中,我们利用字符型变量处理了文本文件中的英文字符。但是,文本文件中不仅能输入英文字符,更多的时候我们需要处理汉字,如何用C语言程序读写这些汉字呢?大多数的C语言初学者或者已经学过C语言的学生对这个问题并不清楚,主要是因为教材上很少涉及这个问题。实际上汉字的读写是很实用的操作,它是基于汉语的文本搜索、自然语言处理...

2016-03-31 17:17:38 12944 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除