<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[fortranbug]]></title>
<link>http://blog.pfan.cn/shenjinggege</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[POJ2575]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50442.html</link>
		<description><![CDATA[#include &lt;stdio.h&gt;#include &lt;math.h&gt;
int main(){&nbsp;int i;&nbsp;int n;&nbsp;int arr[3000];&nbsp;int is_jolly(int arr[],int n);
&nbsp;while(scanf("%d",&amp;n)!=EOF)&nbsp;{&nbsp;&nbsp;for(i=0;i&lt;n;i++)&nbsp;&nbsp;&nbsp;scanf("%d",&amp;arr[i]);&nbsp;&nbsp;if(is_jolly(arr,n))&nbsp;&nbsp;&nbsp;printf("Jolly\n");&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;printf("Not jolly\n");&nbsp;}
&nbsp;return 0;}
int is_jolly(int arr[],int n){&nbsp;int *p;&nbsp;int i;&nbsp;int diff;
&nbsp;p=(int *) malloc(sizeof(int)*(n-1));&nbsp;&nbsp;for(i=0;i&lt;n-1;i++)&nbsp;&nbsp;p[i]=0;
&nbsp;for(i=0;i&lt;n-1;i++)&nbsp;{&nbsp;&nbsp;diff=abs(arr[i]-arr[i+1]);&nbsp;&nbsp;&nbsp;if(diff&gt;0 &amp;&amp; diff&lt;n)&nbsp;&nbsp;&nbsp;p[diff-1]++;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;return 0;&nbsp;}
&nbsp;for(i=0;i&lt;n-1;i++)&nbsp;{&nbsp;&nbsp;if(p[i]!=1)&nbsp;&nbsp;&nbsp;break;&nbsp;}&nbsp;if(i==n-1)&nbsp;&nbsp;return 1;&nbsp;else&nbsp;&nbsp;return 0;
&nbsp;free(p);}]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-25 07:42:00</pubDate>
		</item>
				<item>
		<title><![CDATA[POJ1002]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50441.html</link>
		<description><![CDATA[#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;malloc.h&gt;
int main() {&nbsp;int n;&nbsp;int i,j;&nbsp;int iCurr;&nbsp;int count;&nbsp;char **str;&nbsp;char **str1;&nbsp;int no_duplicates=1;&nbsp;int *indices;&nbsp;void sort_string(char **s,int i,int * indices);
&nbsp;scanf("%d",&amp;n);
&nbsp;str=(char**) malloc(sizeof(char*)*n);&nbsp;str1=(char**) malloc(sizeof(char*)*n);&nbsp;indices=(int*) malloc(sizeof(int)*n);
&nbsp;for(i=0;i&lt;n;i++)&nbsp;{&nbsp;&nbsp;*(str+i)=(char*) malloc(sizeof(char)*30);&nbsp;&nbsp;*(str1+i)=(char*) malloc(sizeof(char)*8);&nbsp;}
&nbsp;for(i=0;i&lt;n;i++)&nbsp;&nbsp;scanf("%s",*(str+i));
&nbsp;for(i=0;i&lt;n;i++)&nbsp;{&nbsp;&nbsp;j=0;&nbsp;&nbsp;count=0;&nbsp;&nbsp;while(count&lt;7)&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;if(str[i][j]!='-')&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;switch(str[i][j])&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;case 'A':&nbsp;&nbsp;&nbsp;&nbsp;case 'B':&nbsp;&nbsp;&nbsp;&nbsp;case 'C':&nbsp;&nbsp;&nbsp;&nbsp]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-25 06:14:00</pubDate>
		</item>
				<item>
		<title><![CDATA[API写的贪食蛇]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50425.html</link>
		<description><![CDATA[这两天闲来无事写了个。
点击下载
这两天闲来没事写了贪食蛇。测试版本，有时间再加点功能。用的是dev&nbsp;c++&nbsp;纯API按回车开始。按pause暂停。方向键控制。]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-20 12:19:00</pubDate>
		</item>
				<item>
		<title><![CDATA[直接把main函数定义成递归实现字符串逆序输出]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50358.html</link>
		<description><![CDATA[#include&lt;stdio.h&gt;&nbsp;char&nbsp;s[100];char&nbsp;*p=s;//这是一个递归算法实现多个字符串的逆序输出//以下为例//输入：//s1&nbsp;s2&nbsp;s3//输出：//s3&nbsp;s2&nbsp;s1//i表示命令行参数的个数//如果命令行没输入参数，默认参数有一个参数，是程序的路径//所以这里i=1int&nbsp;main(int&nbsp;i,char&nbsp;*q){&nbsp;&nbsp;&nbsp;&nbsp;//加了参数trace函数的调用的变量&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;int&nbsp;count_main=0;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;int&nbsp;count_if=0;&nbsp;&nbsp;&nbsp;&nbsp;if(!--i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//第一次判断的时候i=1,--i=0,!0=1，所以满足条件&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gets(s);&nbsp;&nbsp;&nbsp;&nbsp;//读入多个字符串&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("第%d次进入if",++count_if);&nbsp;&nbsp;&nbsp;&nbsp;//输出第几次进入if语句&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(*p)++p;&nbsp;//循环p向后移动，找到字符串的结尾，注意空格不是结尾&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(;p---s;*p==32?*p=0,main(i,p):0);&nbsp;&nbsp;&nbsp;&nbsp;//循环使p往前移动，直到遇到一个空格&nbsp;&nbsp;&nbsp;&nbsp;&nbsp]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-13 11:49:00</pubDate>
		</item>
				<item>
		<title><![CDATA[漩涡形矩阵产生]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50348.html</link>
		<description><![CDATA[写的有点乱了
#include&nbsp;&lt;iostream&gt;#include&nbsp;&lt;assert.h&gt;#include&nbsp;&lt;iomanip&gt;using&nbsp;namespace&nbsp;std;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;//define&nbsp;the&nbsp;directions&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;right=1;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;down=2;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;left=3;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;up=4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//current&nbsp;direction&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;direction;&nbsp;&nbsp;&nbsp;&nbsp;//size&nbsp;of&nbsp;the&nbsp;matrix&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//input&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;matrix&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"input&nbsp;size&nbsp;of&nbsp;the&nbsp;matrix："&lt;&lt;endl;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//dynamically&nbsp;create&nbsp;the&nbsp;2D&nbsp;array&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;**p=new&nbsp;int*[]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-11 09:51:00</pubDate>
		</item>
				<item>
		<title><![CDATA[输出蛇形矩阵]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50347.html</link>
		<description><![CDATA[练个题目
蛇行矩阵
Problem蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 Input本题有多组数据，每组数据由一个正整数N组成。（N不大于100） Output对于每一组数据，输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。 矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。 Sample Input5Sample Output1 3 6 10 152 5 9 144 8 137 1211
&nbsp;
#include&nbsp;&lt;iostream&gt;#include&nbsp;&lt;assert.h&gt;#include&nbsp;&lt;iomanip&gt;using&nbsp;namespace&nbsp;std;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;NumLines;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"输入行数：";&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;NumLines;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert(NumLines&lt;=100&nbsp;&amp;&amp;&nbsp;NumLines&gt;=2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//动态分配二维数组&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;**p=new&nbsp;int*&nbsp;[NumLines];&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;NumLines;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(p+i)=new&nbsp;int[NumLines];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;output_width=NumLines*(NumLines+1)/2;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num_digits=1;&]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-11 04:27:00</pubDate>
		</item>
				<item>
		<title><![CDATA[做了下07清华计算机考研上机第三题]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50339.html</link>
		<description><![CDATA[今天试了下，刚好半个小时做完哦
第三题（可执行文件名program3.exe）有若干张邮票，要求从中选取最少的邮票张数凑成一个给定的总值。如，有1分，3分，3分，3分，4分五张邮票，要求凑成10分，则使用3张邮票：3分、3分、4分即可。首先是要求凑成的邮票总值M，M&lt;100然后是一个数N，N〈20，表示有N张邮票。接下来是N个正整数，分别表示这N张邮票的面值，且以升序排列。输出：能够凑成总值M的最少邮票张数。若无解，输出0。样例输入：10 5 1 3 3 3 4样例输出：3
#include&nbsp;&lt;iostream&gt;using&nbsp;namespace&nbsp;std;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num_of_combs=1;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum_try;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num_need=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"输入邮票总值：";&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;sum;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"输入邮票张数：";&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;num;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;*p=new&nbsp;int[num];&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;*digits=new&nbsp;int[num];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"输入邮票面值（从小到大）：\n";&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;num;i++)&nbsp;&]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-10 17:05:00</pubDate>
		</item>
				<item>
		<title><![CDATA[一道有意思的题目]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50302.html</link>
		<description><![CDATA[将0到9这十个数字分成n组，每一组的数字之和等于输入的数，输入的数的个数等于n。例如：输入：40&nbsp;&nbsp;5则程序需要把这十个数字分成两组，第一组所有数字之和为40，第二组之和为5。所以有：输出：0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;6&nbsp;7&nbsp;8&nbsp;95
#include&nbsp;&lt;iostream&gt;using&nbsp;namespace&nbsp;std;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;N_OF_DIGITS=9;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;TOTAL_COMBS=512;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;MAX_NUM_GROUP=9;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;bin[N_OF_DIGITS]={0};&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;digits_record[N_OF_DIGITS]={0};&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;digits[]={1,2,3,4,5,6,7,8,9};&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum_of_combs[TOTAL_COMBS]={0};&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;groups_sums[MAX_NUM_GROUP];&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;comb_indices[MAX_NUM_GROUP]={0};&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n_of_groups;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,j,k;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;dec2bin(int&nbsp;n,int&nbsp;*arr);&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;IsOverlap(int&nbsp;arr1[],in]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-09 14:23:00</pubDate>
		</item>
				<item>
		<title><![CDATA[一道ACM题目&nbsp;练练递归]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50294.html</link>
		<description><![CDATA[题目：&nbsp;一个数字链由数字的每位平方相加而成。&nbsp;例子：44-&gt;32-&gt;13-&gt;10-&gt;1-&gt;1&nbsp;&nbsp;.4*4+4*4=32,3*3+2*2=13&nbsp;&nbsp;.........&nbsp;给你一个数字N计算出N（包括N）以内的所有数据链最后的数是1的个数。1&nbsp;&lt;=N&nbsp;&lt;=10000所有子函数都写成递归的哦！样式输出input&nbsp;N:10011013192328313244496870798286919497100
#include&nbsp;&lt;stdio.h&gt;#include&nbsp;&lt;conio.h&gt;#include&nbsp;&lt;assert.h&gt;#define&nbsp;SQUARE(a)&nbsp;a*aint&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;num2digits(int&nbsp;n,&nbsp;int&nbsp;*digits,int&nbsp;*count);&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;recursive(int&nbsp;n);&nbsp;&nbsp;&nbsp;&nbsp;puts("input&nbsp;N:");&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;n);&nbsp;&nbsp;&nbsp;&nbsp;for(i=1;i&lt;=n;i++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(recursive(i)==1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",i);&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-09 06:41:00</pubDate>
		</item>
				<item>
		<title><![CDATA[简单练习题&nbsp;帮网友做下]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50293.html</link>
		<description><![CDATA[1、输入n值，输出如图所示的数字金字塔,如n=5的情况如下.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;2&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;2&nbsp;3&nbsp;2&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;3&nbsp;2&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;4&nbsp;3&nbsp;2&nbsp;12、编程，输出这样一个三位数，该三位数等于其每位数字的阶乘之和。　　　　即：　abc&nbsp;=&nbsp;a!&nbsp;+&nbsp;b!&nbsp;+&nbsp;c!3、编程，输入顶行字符c和高n，输出如下例（c=’A’，n=5）所示的图形。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C&nbsp;&nbsp;&nbsp;&nbsp;]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-08 22:17:00</pubDate>
		</item>
				<item>
		<title><![CDATA[【原创】insertion&nbsp;sort]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50291.html</link>
		<description><![CDATA[#include&nbsp;&lt;stdio.h&gt;int&nbsp;main(){&nbsp;int&nbsp;arr[]={9,7,5,8,4,1,3,2,6};&nbsp;int&nbsp;i;&nbsp;void&nbsp;insertion_sort(int&nbsp;arr[],int&nbsp;size);&nbsp;insertion_sort(arr,sizeof(arr)/sizeof(int));&nbsp;&nbsp;for(i=0;i&lt;sizeof(arr)/sizeof(int);i++)&nbsp;&nbsp;printf("%d\n",arr[i]);&nbsp;&nbsp;getchar();&nbsp;return&nbsp;0;}void&nbsp;insertion_sort(int&nbsp;arr[],int&nbsp;size){&nbsp;int&nbsp;i,j,k;&nbsp;int&nbsp;temp;&nbsp;for(i=1;i&lt;size;i++)&nbsp;{&nbsp;&nbsp;for(j=0;j&lt;=i-1;j++)&nbsp;&nbsp;&nbsp;if(arr[i]&lt;arr[j])&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;if(j&gt;=0)&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;temp=arr[i];&nbsp;&nbsp;&nbsp;for(k=i-1;k&gt;=j;k--)&nbsp;&nbsp;&nbsp;&nbsp;arr[k+1]=arr[k];&nbsp;&nbsp;&nbsp;arr[j]=temp;&nbsp;&nbsp;}&nbsp;}}]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-08 15:43:00</pubDate>
		</item>
				<item>
		<title><![CDATA[十进制数转任意三十六以内进制数递归算法]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50290.html</link>
		<description><![CDATA[#include&nbsp;&lt;stdio.h&gt;#include&nbsp;&lt;conio.h&gt;#include&nbsp;&lt;assert.h&gt;#include&nbsp;&lt;string.h&gt;void&nbsp;itob(int&nbsp;n,&nbsp;&nbsp;int&nbsp;b,&nbsp;char&nbsp;*s){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sign;&nbsp;&nbsp;&nbsp;&nbsp;if((sign=n)&lt;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=-n;&nbsp;&nbsp;&nbsp;&nbsp;if(n/b&gt;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;itob(n/b,&nbsp;&nbsp;b,&nbsp;s+1);&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(s+1)='\0';&nbsp;&nbsp;&nbsp;&nbsp;if("%d",n%b&lt;10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*s=n%b+'0';&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*s=n%b-10+'A';}int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n,&nbsp;b;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;s[20];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Recursive&nbsp;convert&nbsp;a&nbsp;decimal&nbsp;number&nbsp;to&nbsp;its&nbsp;counterpart&nbsp;in&nbsp;another&nbsp;number&nbsp;s]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-08 08:40:00</pubDate>
		</item>
				<item>
		<title><![CDATA[求N个句子中的单词数并打印]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50269.html</link>
		<description><![CDATA[昨天有个网友问相似的问题，不过只有一个句子，稍微改了下弄成能处理多个句子的。
#include&nbsp;&lt;stdio.h&gt;const&nbsp;int&nbsp;MAX_NUM_OF_WORDS=30;const&nbsp;int&nbsp;MAX_LEN_OF_WORDS=30;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;sample_sentence[]="You&nbsp;can,&nbsp;count,&nbsp;&nbsp;how&nbsp;&nbsp;&nbsp;&nbsp;many&nbsp;words&nbsp;these&nbsp;sample&nbsp;sentences&nbsp;has&nbsp;&nbsp;.&nbsp;This&nbsp;is&nbsp;the&nbsp;second&nbsp;sentence&nbsp;&nbsp;.&nbsp;&nbsp;Third&nbsp;one.";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;words[MAX_NUM_OF_WORDS][MAX_LEN_OF_WORDS];&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;CountWords(char*&nbsp;str,char&nbsp;words[][MAX_LEN_OF_WORDS]);&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num_of_sentences=0;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num_of_words;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;=CountWords(sample_sentence,words);&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*p_first_char=sample_sentence;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,j,iSentence=0;&nbsp;&nbsp;&nbsp;&nbsp;&n]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-07 08:03:00</pubDate>
		</item>
				<item>
		<title><![CDATA[【原创】谁是小偷？一道推理题的C语言描述]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50268.html</link>
		<description><![CDATA[题目:
a说：“我不是小偷。”b说：“c是小偷。”c说：“小偷肯定是d。”d说：“c冤枉人！”四人中有三人说的是真话，问到底谁是小偷。
#include&nbsp;&lt;stdio.h&gt;#define&nbsp;N_PEOPLE&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;//定义人的个数#define&nbsp;NUM_OF_TRUTH&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;//说真话人的个数int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;hypothesis[N_PEOPLE];&nbsp;//定义数组来描述假设，1表示真话，0表示假话&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num_of_true[N_PEOPLE]={0,0,0,0};&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,j;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;judge(int&nbsp;index,int&nbsp;hypothesis[]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//假设其中一个人是小偷，比如A是小偷，看几个人的描述跟这个假设吻合&nbsp;&nbsp;&nbsp;&nbsp;//如果有三个描述和假设吻合，则假设成立，这个人就是小偷&nbsp;&nbsp;&nbsp;&nbsp;//下面的循环从假设A是小偷开始一直到D，计算和假设吻合的描述个数&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;N_PEOPLE;i++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//被假设成小偷的人被赋值成1，假设不是小偷的赋值成0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt;N_PEOPLE;j++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(j==i)&nb]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-07 04:05:00</pubDate>
		</item>
				<item>
		<title><![CDATA[【原创】归并排序算法的原理及实现]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50262.html</link>
		<description><![CDATA[#include&nbsp;&lt;stdio.h&gt;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;arr[]={9,7,5,8,4,1,3,2,6};&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;merge_sort(int&nbsp;vec1[],int&nbsp;vec2[],int&nbsp;size1,int&nbsp;size2);&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;recursive_merge(int&nbsp;arr[],int&nbsp;size);&nbsp;&nbsp;&nbsp;&nbsp;recursive_merge(arr,sizeof(arr)/sizeof(int));&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;sizeof(arr)/sizeof(int);i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",*(arr+i));&nbsp;&nbsp;&nbsp;&nbsp;getchar();&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}void&nbsp;merge_sort(int&nbsp;vec1[],int&nbsp;vec2[],int&nbsp;size1,int&nbsp;size2){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0,j=0,k=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;*pvec=&nbsp;(int*)&nbsp;malloc(size1+size2);&nbsp;&nbsp;&nbsp;&nbsp;while(1)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(pvec+k++)=vec1[i]&lt;=vec2[j]?vec1[i++]:vec2[j++];&nbsp;&]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-06 17:45:00</pubDate>
		</item>
				<item>
		<title><![CDATA[【原创】关于fortran读取各行长度不一格式不一具体行数不知数据文件]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50261.html</link>
		<description><![CDATA[iwanfly网友曾在一段时间前发过贴探讨过这个问题http://bbs.pfan.cn/post-312402.html当时思路不是很清晰现思考结果如下，虽然比较麻烦，但最终还是解决了读取数据的问题，前提是知道每行最大的数据个数，比如7个。不知道论坛上的网友是否有更好的方法，不吝赐教。测试数据如下：12&nbsp;&nbsp;89&nbsp;&nbsp;7712&nbsp;&nbsp;999&nbsp;878&nbsp;&nbsp;777398&nbsp;789&nbsp;765&nbsp;98&nbsp;76578&nbsp;8912&nbsp;&nbsp;89&nbsp;&nbsp;7712&nbsp;&nbsp;999&nbsp;878&nbsp;&nbsp;777398&nbsp;789&nbsp;765&nbsp;98&nbsp;765。。。。总共78144行。大概需要5，6秒时间把数据全部读进。program&nbsp;mainimplicit&nbsp;noneinteger,allocatable&nbsp;::&nbsp;int_array(:,:),temp_array(:,:)integer&nbsp;::&nbsp;count,length,step,i,ierrcharacter*256&nbsp;::&nbsp;str_one_recordopen(100,file='data.txt')count=0step=100000length=stepallocate(int_array(length,7))int_array=0do&nbsp;while(.not.&nbsp;eof(100))&nbsp;&nbsp;&nbsp;&nbsp;count=count+1&nbsp;&nbsp;&nbsp;&nbsp;loop1:&nbsp;&nbsp;do&nbsp;i=7,1,-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(100,'(A)',advance='no',eor=168)&nbsp;str_one_record168&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(str_one_record,*,]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-06 09:21:00</pubDate>
		</item>
				<item>
		<title><![CDATA[冒泡排序&nbsp;C版块问题提问]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50260.html</link>
		<description><![CDATA[题目：
某班10人期中考试共有五门成绩用函数求按每个学生的平均分排序
#include&nbsp;&lt;stdio.h&gt;#define&nbsp;NUM_STUDENTS&nbsp;5#define&nbsp;NUM_CLASSES&nbsp;2int&nbsp;main(){&nbsp;float&nbsp;grades[NUM_STUDENTS][NUM_CLASSES]={{80,50},{70,40},{90,68},{70,80},{77,31}};&nbsp;float&nbsp;ave_grades[NUM_STUDENTS];&nbsp;&nbsp;float&nbsp;cal_average(float&nbsp;grades[]);&nbsp;void&nbsp;bubble_sort(float&nbsp;ave_grades[]);&nbsp;for(int&nbsp;i=0;i&lt;NUM_STUDENTS;i++)&nbsp;&nbsp;ave_grades[i]=cal_average(grades[i]);&nbsp;bubble_sort(ave_grades);&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;NUM_STUDENTS;i++)&nbsp;&nbsp;printf("%f&nbsp;\n",ave_grades[i]);&nbsp;return&nbsp;0;}float&nbsp;cal_average(float&nbsp;grades[]){&nbsp;float&nbsp;sum=0.0;&nbsp;for(int&nbsp;i=0;i&lt;NUM_CLASSES;i++)&nbsp;&nbsp;sum+=grades[i];&nbsp;return&nbsp;sum/NUM_CLASSES;}void&nbsp;bubble_sort(float&nbsp;ave_grades[]){&nbsp;float&nbsp;temp;&nbsp;for(int&nbsp;i=NUM_STUDENTS-1;i&gt;0;i--)&nbsp;&nbsp;for(int&nbsp;j=0;j&lt;i;j++)&nbsp;&nbsp;&nbsp;if(ave_grades[j]&lt]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-06 09:13:00</pubDate>
		</item>
				<item>
		<title><![CDATA[一道字符串操作习题&nbsp;C++版块提问]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50259.html</link>
		<description><![CDATA[写过的代码还是记录下来好
题目:给定字符串,其内容为英文长句,其中包含英语单词,标点符号,空格等内容,每个英语单词使用标点符号,一个或多个空格分隔(注意!!是多个空格也可以!!).将英语长句分隔成英语单词系序列输出,并输出去单词数目.例如长句"You&nbsp;can&nbsp;count&nbsp;how&nbsp;many&nbsp;words&nbsp;this&nbsp;sample&nbsp;sentence&nbsp;has."的单词数目为10,其单词序列为"You"&nbsp;"can"&nbsp;"count".....
#include&nbsp;&lt;iostream&gt;using&nbsp;namespace&nbsp;std;const&nbsp;int&nbsp;MAX_NUM_OF_WORDS=50;const&nbsp;int&nbsp;MAX_LEN_OF_WORDS=30;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;sample_sentence[]="You&nbsp;can,&nbsp;count,&nbsp;&nbsp;how&nbsp;&nbsp;&nbsp;&nbsp;many&nbsp;words&nbsp;this&nbsp;sample&nbsp;sentence&nbsp;has.";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;words[MAX_NUM_OF_WORDS][MAX_LEN_OF_WORDS];&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;CountWords(char*&nbsp;str,char&nbsp;words[][MAX_LEN_OF_WORDS]);&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num_of_words=CountWords(sample_sentence,words);&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"\"You&nbsp;can,&nbsp;count,&nbsp;how&nbsp;&nbsp;&nbsp]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-06 07:19:00</pubDate>
		</item>
				<item>
		<title><![CDATA[【原创】计算100和10000的阶乘]]></title>
		<link>http://blog.pfan.cn/shenjinggege/50232.html</link>
		<description><![CDATA[方法一：
program&nbsp;mainimplicit&nbsp;nonereal*8&nbsp;::&nbsp;Rfact100integer,allocatable&nbsp;::&nbsp;main_digits(:),sub_digits(:,:)integer&nbsp;::&nbsp;num_digitsinteger&nbsp;::&nbsp;i,j!先用双精度数算出100!，有效位数只有15位Rfact100=1.0d0do&nbsp;i=1,100&nbsp;&nbsp;Rfact100=Rfact100*dble(i)end&nbsp;do!求得100阶乘有多少位数字，包括低位上的0num_digits=dlog10(Rfact100)+1!分配一个数组，数组每个元素代表一个数字allocate(main_digits(num_digits),sub_digits(num_digits,3))!赋初值main_digits=0main_digits(1)=1do&nbsp;i=2,100&nbsp;&nbsp;!每一位数字都乘以i，每个数都不会超过900,所以最多3位数字&nbsp;&nbsp;main_digits=main_digits*i&nbsp;&nbsp;!分解每位数，进位处理&nbsp;&nbsp;do&nbsp;j=1,num_digits&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;int2digits(main_digits(j),sub_digits(j,:))&nbsp;&nbsp;&nbsp;&nbsp;if(j&lt;=num_digits-2)&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main_digits(j)=sub_digits(j,1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main_digits(j+1)=main_digits(j+1)+sub_digits(j,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main_digits(j+2)=main_digits(j+2)+sub_digits(j,3)&nbsp;&nbsp;&nbsp;&nbsp;else&nb]]></description>
		<author><![CDATA[shenjinggege]]></author>
		<pubDate>2009-12-05 08:24:00</pubDate>
		</item>
		</channel>
</rss>