- 博客(38)
- 资源 (13)
- 收藏
- 关注
原创 改进的走迷宫,可算出所有可行的路径
/*老鼠走迷官(二)说明:由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径呢?解法:求所有路径看起来复杂但其实更简单,只要在老鼠走至出口时显示经过的路径,然后退回上一格重新选择下一个位置继续递回就可以了,比求出单一路径还简单,我们的程式只
2011-09-30 11:10:21 1340
转载 递归函数工作原理
递归(recursion)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。 递归通常用来解决结构自相似的问题。所谓结构自相似,是指构成原问题的子问题与原问题在结构上相似,可以用类似的方法解决。具体地,整个问题的
2011-09-29 19:39:02 18091 2
原创 递归算法求老鼠走迷宫(C语言)
/*说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径。解法老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四
2011-09-29 17:32:36 9758
原创 三色旗算法及其C程序
/*说明:假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这个动作,而且一次只能调换两个旗子。解法:在一条绳子上移动,在程式中也就意味只
2011-09-29 17:07:00 4298
原创 打印杨辉三角的C程序
//打印杨辉三角#include #define N 12long combi(int n, int r){ int i; long p = 1; for(i = 1; i p = p * (n-i+1) / i;
2011-09-28 18:08:11 1067
原创 汉诺塔算法
/*汉诺塔算法解法如果柱子标为ABC,要由A搬至C,在只有一个盘子时,就将它直接搬至C,当有两个盘子,就将B当作辅助柱。如果盘数超过2个,将第三个以下的盘子遮起来,就很简单了,每次处理两个盘子,也就是:A->B、A ->C、B->C这三个步骤,而被遮住的部份,其实就是
2011-09-28 17:39:24 1054
原创 二叉树统计单词的个数,若单词第一次出现,则产生新的树节点
//二叉树统计单词的个数,若单词第一次出现,则产生新的树节点 #include #include #include #include #define MAXWORD 100 struct tnode //树的节点 {
2011-09-27 10:57:37 950
原创 C语言统计关键字的个数的程序
//#include #include #include #define MAXWORD 100 //关键字最大的个数struct key //结构体数组,关键字按顺序排列{ char *word; int count;} keytab[]
2011-09-26 17:28:42 3235
原创 追赶法解三对角线性方程组(Matlab)
%追赶法解三对角线性方程组clear;clcA=[1,2,0,0,0;2,3,1,0,0; 0,-3,4,2,0;0,0,4,7,1;0,0,0,-5,6];d=[5 9 2 19 -4]';n=length(d);U=zeros(n);L=eye(
2011-09-23 08:07:02 17438 3
原创 字符串的合并
//将t指向的字符串复制到s指向的字符串的尾部#include //字符串的复制void strcpy(char *s, char *t){ while(*s++ = *t++);}//将t复制到s的尾部void strcat(char
2011-09-22 20:09:49 808
原创 求字符串的长度,字符串复制,字符串比较
//求字符串s的长度int strlen(char *s){ int n; for(n=0;*s!='\0';s++) n++; return n;}int strlen(char *s){ char *p=s; while(*p!=
2011-09-22 19:30:49 577
原创 申请n个连续字符存储单元,释放已分配的存储单元
//alloc(n)申请一个n个连续字符存储单元,返回连续存储单元的指针//afree(p)释放已分配的存储单元#define ALLOCSIZE 10000//可用空间大小static char allocbuf[ALLOCSIZE]; //alloc使用的存储区
2011-09-22 19:07:19 693
原创 返回字符t在字符串s中最右边出现的位置,若s中不包括t,则返回-1
#include //返回字符t在字符串s中最右边出现的位置,若s中不包括t,则返回-1int strrindex( char s[], char t ){ int i; int count = -1; for(i=0; s[i] != '\0
2011-09-20 21:28:47 3183
原创 整数转化为任意n进制的字符串
//整数转化为任意n进制的字符串(1#include #include #include void itob(int n, char s[], int b);void reverse(char s[]); int main(void){
2011-09-20 11:28:33 1177
原创 扩展字符,如将A-Z,扩展为ABCD......XYZ
#include #include void expand(char * s1, char * s2); int main(void) { char *s[] = { "a-z-", "z-a-", "-1-6-",
2011-09-20 11:28:02 1270
原创 LU分解(Doolittle分解)解线性方程组(Matlab版)
%LU分解,Doolittle分解%L为单位下三角阵,U为上三角阵clear;clc;A=[3 -5 6 4 -2 -3 8; 1 1 -9 15 1 -9 2; 2 -1 7 5 -1 6 11; -1 1 3 2 7 -
2011-09-19 20:21:02 22503 2
原创 Gauss消去法解线性方程组(C语言版)
列主元高斯消去法的程序已经出来了,也传上来了,但我怕有些同学太懒,不想自己写,也怕有些同学直接复制粘贴,和别人的一样,被老师查出来了,对自己和他人都没什么好处。其实程序还是很简单的,在这个程序的基础上只要稍微修改一点就行了,慢的话30分钟也就够了。有些时候程序还是自己写的看着舒服
2011-09-19 09:00:28 12333 1
原创 Gauss消去法解线性方程组(Matlab)
clear;clc;% Gauss消去法解线性方程组A=[3 -5 6 4 -2 -3 8; 1 1 -9 15 1 -9 2; 2 -1 7 5 -1 6 11; -1 1 3 2 7 -1 -2; 4 3 1 -7
2011-09-18 21:59:19 17860
原创 用switch...case语句统计数字、空格和其他字符出现的次数
//用switch...case语句统计数字、空格和其他字符出现的次数//转自K&R#include int main(void) { int c, i, nwhite, nother, ndigit[10]; nwhite = nother
2011-09-18 21:56:42 6374
原创 C语言折半查找法
#includeint find(int x,int y[],int n);int main(void){ int A[]={1,2,3,4,5,6,9}; int b=12; int f; f=find
2011-09-18 21:56:19 1750
原创 C语言中与时间有关的函数和操作
头文件或函数名称: localtime 函数原型: struct tm *localtime(const time_t *timer) 函数功能: 返回一个以tm结构表达的机器时间信息 函数返回: 以tm结构表达的时间,结构tm定义如下: struct
2011-09-17 13:19:23 575
原创 将大写字母转换为小写字母
#include #include int lower(int c){ return c >= 'A' && c } int main(void){ char *Tests = "AaBbcCD3EdFGHgIJKLhM2NO
2011-09-17 13:15:01 863
原创 /将x循环右移n位(从最右端移出的位从最左端移入)
//将x循环右移n位(从最右端移出的位从最左端移入)#include unsigned rightrot(unsigned x, unsigned n){ while (n > 0) { if ((x & 1) == 1)
2011-09-16 22:55:40 1050
原创 将字符串s1中任何与字符串s2匹配的字符都删去,存放于一个新的字符串s3中
//编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2匹配的字符都删去#include #include char *squeeze(char*s1,char*s2);char s1[];char s2[];char *s3;int
2011-09-16 16:10:44 2436
原创 十六进制数字组成的字符串的程序&库函数strtoul()
//编写函数htoi(),把由十六进制数字组成的字符串(包含可选前缀0X或0x)转换为与之等价的整型值,//字符串中允许包含的数字为:0~9,a~f及A~F #include #include //该函数将字母(a~f,A~F)转换成相应的数字 in
2011-09-16 09:57:06 1226
原创 C语言中与文件有关的操作
C语言中与文件有关的操作 对文件进行操作之前,必须通过库函数fopen打开该文件,该库函数存在于头文件中。该函数返回的是一个可以用于文件读写操作的指针,该指针称为文件指针。 在程序中,只需按照下列声明方式声明一个文件指针即可:FILE *fp;
2011-09-16 08:57:44 764
原创 查找C语言中基本语法错误,如小括号,中括号,大括号,单引号,双引号
/****************************************************** KnR 1-24 -------- Write a program to check the syntax of a C program
2011-09-14 16:06:08 7589
原创 编写一个删除c语言中的注释语句/* */的程序
//编写一个删除c语言中所有的注释语句/******************************************************"Write a program to remove all comments from a C program. Do
2011-09-14 11:39:12 4062
原创 编些程序detaba,将输入中的制表符替换为适当数目的空格,使空格充满到下一个制表符终止位的地方
//编些程序detaba,将输入中的制表符替换为适当数目的空格,使空格充满到下一个制表符终止位的地方。//假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位#include #include #include #define MAX_B
2011-09-14 09:46:36 2216
原创 编写函数reverse(s),将字符串s中的字符顺序颠倒过来
//编写函数reverse(s),将字符串s中的字符顺序颠倒过来//Write a function reverse(s) that reverses the character string s . Use it to write aprogram that rever
2011-09-14 09:17:23 10432
原创 打印输入中各字符出现次数的直方图
//转自K&R的《C程序设计语言》 #include #define NUM_CHARS 256 //0 int main(void){ int c; long freqarr[NUM_CHARS + 1]={0}; l
2011-09-09 09:42:05 809
原创 打印输入中单词长度的直方图
打印输入中单词长度的直方图#include #define MAXWORDLEN 10 //单Ì£¤词䨺的Ì?长¡è度¨¨从䨮1-10,ê?长¡è于®¨²10的Ì?都?当Ì¡À成¨¦一°?种?(ꡧ最Á?长¡è长¡è度¨¨)ê? int main(
2011-09-08 22:36:35 697
原创 统计各个数字、空白符、及所有其他字符出现的次数
//统计各个数字、空白符(包括空格、制表符及换行符)及所有其他字符出现的次数 #include /* count digits, white space, others */ int main() { int c, i, nwhite,
2011-09-08 20:27:17 1515
原创 以每行一个单词的形式打印输入
以每行一个单词的形式打印输入//Write a program that prints its input one word per line. #include int main(void){ int c; int inspace= 0; wh
2011-09-08 17:15:03 1137
原创 统计行数、单词数与字符数(C语言)
程序用于统计行数、单词数与字符数。这里对单词的定义比较宽松,它是任何其中不包含空格,制表符或换行符的字符序列#include #define IN 1 /* inside a word */#define OUT 0 /* outside a word */
2011-09-08 17:04:23 2795
原创 统计换行符,空格,制表符
//统计空格,制表符和回车符#include int main(void){ int blanks, tabs, newlines; int c; int done = 0; int lastchar = 0; blanks
2011-09-08 00:52:42 745
原创 有关getchar()和EOF
#include "stdafx.h"#include int main(){ double nc; char c; c=getchar(); //当用getchar进行输入时,如果输入的第一个字符为有效字符 //(即输
2011-09-08 00:47:40 761
原创 第一个程序
#include "stdafx.h"//#include #define LOWER 0 /* lower limit of table */#define UPPER 300 /* upper limit */#define STEP 20
2011-09-07 13:11:14 356
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人