C语言 扫雷

/*********************************作者:HungryAnt姓名:孙麟E-mail:ljsunlin@126.comQQ:517377100blog:http://hi.baidu.com/zhongji/blog*********************************/ #include<stdio.h>#include<graphics.h>#include<dos.h> int m_poly[8]={0,0,5,7,0,9,0,0};/*鼠标*/int m_now_poly[8]={0,0,5,7,0,9,0,0};int re...
2008-01-31 09:17 | 阅读 12170 次 | 评论 0 条

Linux下C开发工具介绍

Linux的发行版中包含了很多软件开发工具. 它们中的很多是用于 C 和 C++应用程序开发的. 本文介绍了在 Linux 下能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux 下使用 C 编译器和其他 C 编程工具, 而非 C 语言编程的教程. GNU C 编译器 GNU C 编译器(GCC)是一个全功能的 ANSI C 兼容编译器. 如果你熟悉其他操作系统或硬件平台上的一种 C 编译器, 你将能很快地掌握 GCC. 本节将介绍如何使用 GCC 和一些 GCC 编译器最常用的选项. 使用 GCC 通常后跟一些选项和文件名来使用 GCC 编译器. gcc ...
2007-10-29 20:26 | 阅读 4285 次 | 评论 0 条

用C设计,用C++编码

昨天晚上看到刘江的blog又补充了好几大段,今天早上又看到云风的人肉trackback,果然还是这种话题引人关注。 云风先是提了一下所谓C++带来的思想包袱(文言文曰“心智包袱”)问题,然后重重地引用了Linus的话:“关键是设计”,其实他是在暗示:好的设计C同样能做出来,不劳C++大驾;而C++一旦出面,就要让人背上额外的思想包袱。 我明确地表个态,在系统级程序设计中,事实就是这样的。 别小看这个思想包袱,大部分,甚至绝大部分C++程序员过不了这一关。相反,做系统级开发,C是几乎没有思想包袱的语言,说白了就是刺刀见红,你想要啥你就去写啥,它给你的不多也...
2007-10-26 21:43 | 阅读 3626 次 | 评论 2 条

为MM量身定做的C语言程序

 result love(boy, girl)   {    if( boy.有房() and boy.有车() )     {      boy.set(nothing);      return girl.嫁给(boy);     }     if( girl.愿意等() )    {     while(!(boy.赚钱 > 100,000 and girl.感情 > 8 ) )     {      for( day=1; day <=365; day++)     {       if( day == 情人节 )        if( boy.givegirl(玫瑰) )   ...
2007-10-17 23:08 | 阅读 1659 次 | 评论 1 条

C_谁在说谎

张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话? *问题分析与算法设计分析题目,每个人都有可能说的是真话,也有可能说的是假话,这样就需要对每个人所说的话进行分别判断。假设三个人所说的话的真假用变量A、B、C表示,等于1表示该人说的是真话; 表示这个人说的是假话。由题目可以得到:*张三说李四在说谎 张三说的是真话:a==1&amp;&amp;b==0或 张三说的是假话:a==0&amp;&amp;b==1*李四说王五在说谎 李四说的是真话:b==1&amp;&amp;c==0或 李四说的是假话:b==0&amp;&amp;c=...
2007-10-08 08:31 | 阅读 1966 次 | 评论 0 条

C_委派任务

某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:1)A和B两人中至少去一人;2)A和D不能一起去;3)A、E和F三人中要派两人去;4)B和C都去或都不去;5)C和D两人中去一个;6)若D不去,则E也不去。问应当让哪几个人去? *问题分析与算法设计用A、B、C、D、E、F六个变量表示六个人是否去执行任务的状态,变量的值为1,则表示该人去;变量的值为0,则表示该人不参加执行任务,根据题意可写出表达式:a+b>1 A和B两人中至少去一人;a+d!=2 A和D不能一起去;a+e+f==2 A、E、F三人中要派两人去;b+c==0或b+c==...
2007-10-08 08:31 | 阅读 2202 次 | 评论 0 条

C_新娘和新郞

三对情侣参加婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在开玩笑,全是假话。请编程找出谁将和谁结婚。 *问题分析与算法设计将A、B、C三人用1,2,3表示,将X和A结婚表示为“X=1”,将Y不与A结婚表示为“Y!=1”。按照题目中的叙述可以写出表达式:x!=1 A不与X结婚x!=3 X的未婚夫不是Cz!=3 C不与Z结婚题意还隐含着X、Y、Z三个新娘不能结为配偶,则有:x!=y且x!=z且y!=z穷举以上所有可能的情况,代入上述表达式中进...
2007-10-08 08:30 | 阅读 1919 次 | 评论 1 条

C_计算分数的精确值

使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出 循环节的起止位置(小数位的序号) *问题分析与算法设计由于计算机字长的限制,常规的浮点运算都有精度限制,为了得到高精度的计算结果,就必须自行设计实现方法。为了实现高精度的计算,可将商存放在一维数组中,数组的每个元素存放一位十进制数,即商的第一位存放在第一个元素中,商的第二位存放在第二个元素中....,依次类推。这样就可以使用数组不表示一个高精度的计算结果。进行除法运算时可以模拟人的手工操作,即每次求出商的第一位后,将余数乘以10,再计算商的下一位,重复以上过程,当某次...
2007-10-08 08:29 | 阅读 2009 次 | 评论 0 条

C_列出真分数序列

按递增顺序依次列出所有分母为40,分子小于40的最简分数。 *问题分析与算法设计对分子采用穷举法,利用最大公约数的方法,判断分子与40是否构成真分数。 *程序说明与注释#include<stdio.h>int main(){int i,num1,num2,temp;printf("The fraction serials with demominator 40 is:\n");for(i=1;i<=40;i++) /*穷举40以内的全部分子*/{num1=40;num2=i;while(num2!=0) /*采用辗转相除法求出最大公约数*/{temp=num1%num2;num1=n...
2007-10-08 08:28 | 阅读 1460 次 | 评论 0 条

C_将真分数分解为埃及分数

分子为1 的分数称为埃及分数,现输入一个真分数,请将该分数分解为埃及分数。如:8/11=1/2+1/5+1/55+1/110。 *问题分析与算法设计若真分数的分子a能整除分母b,则真分数经过化简就可以得到埃及分数,若真分数的分子不能整除分母,则可以从原来的分数中分解出一个分母为b/a+1的埃及分数。用这种方法将剩余部分反复分解,最后可得到结果。 *程序说明与注释/*安安注:对源程序作稍许修改,主要是添加了一个外循环,可以直接计算多个真分数的埃及分数,按Ctrl-C退出。具体的算法我没有认真看,有问题请提出,谢谢*/#include<stdio.h>int main(void){lon...
2007-10-08 08:27 | 阅读 1728 次 | 评论 0 条

C_分数之和

求这样的四个自然数p,q,r,s(p<=q<=r<=s),使得以下等式成立: 1/p+1/q+1/r+1/s=1 *问题分析与算法设计若规定p<=q<=r<=s,将原式通分、化简并整理后得到:2<=p<5 p<=q<7 q<r<13采用最简单的穷举方法可以很方便的求解。程序与程序注释:#include<stdio.h>int main(){int p,q,r,s,count=0;printf("The 4 fractions which sum is equal 1 are:\n");for(p=2;p<5;p++) /*穷举分母*/for(q=p;q<7;q++)for(r=q;r<...
2007-10-08 06:55 | 阅读 1678 次 | 评论 0 条

C_分数比较

比较两个分数的大小。 *问题分析与算法设计人工方式下比较分数大小最常用的方法是:进行分数的通分后比较分子的大小。可以编程模拟手式方式。 *程序说明与注释#include<stdio.h>int zxgb(int a,int b);int main(){int i,j,k,l,m,n;printf("Input two FENSHU:\n");scanf("%d/%d,%d/%d",&amp;i,&amp;j,&amp;k,&amp;l); /*输入两个分数*/m=zxgb(j,l)/j*i; /*求出第一个分数通分后的分子*/n=zxgb(j,l)/l*k; /*求出第二个分数通分后...
2007-10-08 06:52 | 阅读 1613 次 | 评论 0 条

C_最大公约数和最小公倍数

求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM) *问题分析与算法设计手工方式求两个正整数的蝚大公约数的方法是用辗转相除法,在程序中可以模拟这种方式。 *程序说明与注释#include<stdio.h>int main(){int a,b,num1,num2,temp;printf("Input a &amp; b:");scanf("%d%d",&amp;num1,&amp;num2);if(num1>num2) /*找出两个数中的较大值*/{temp=num1; num1=num2; num2=temp; /*交换两个整数*/}a=num1; b=num2;whil...
2007-10-08 06:51 | 阅读 6060 次 | 评论 0 条

C_马克思手稿中的数学题

马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人? *问题分析与算法设计设x,y,z分别代表男人、女人和小孩。按题目的要求,可得到下面的方程:x+y+z=30 (1)3x+2y+z=50 (2)用方程程序求此不定方程的非负整数解,可先通过(2)-(1)式得:2x+y=20 (3)由(3)式可知,x变化范围是0~10 *程序说明与注释#include<stdio.h>int main(){int x,y,z,count=0;printf(" Men Women...
2007-10-08 06:47 | 阅读 1959 次 | 评论 0 条

C_三色球问题

若一个口袋中放有12个球,其中有3个红的。3个白的和6个黒的,问从中任取8个共有多少种不同的颜色搭配? *问题分析与算法设计设任取的红球个数为i,白球个数为j,则黒球个数为8-i-j,根据题意红球和白球个数的取值范围是0~3,在红球和白球个数确定的条件下,黒球个数取值应为8-i-j<=6。 *程序说明与注释#include<stdio.h>int main(){int i,j,count=0;printf(" RED BALL WHITE BALL BLACKBALL\n");printf(".................................................
2007-10-07 00:21 | 阅读 1514 次 | 评论 0 条

C_年龄几何

张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。 *问题分析与算法设计设数列的首项为a,则前4项之和为"4*n+6*a",前4 项之积为"n*(n+a)*(n+a+a)*(n+a+a+a)"。同时"1<=a<=4","1<=n<=6"。可采用穷举法求出此数列。 *程序说明与注释#include<stdio.h>int main(){int n,a,i;printf("The series with equal difference are:\n");for(n=1;n<=6;n++) /*公差n取值为1~6...
2007-10-07 00:20 | 阅读 1282 次 | 评论 0 条

C_换分币

用一元人民币兑换成1分、2分和5分硬币,共有多少种不同的兑换方法。 *问题分析与算法设计根据题意设i,j,k分别为兑换的1分、2分、5分硬币所具有的钱数(分),则i,j,k的值应满足:i+j+k=100 *程序说明与注释#include<stdio.h>int main(){int i,j,k,count=1;printf("There are follwing small exchange plans for 1 Yuan note:\n");for(i=0;i<=100;i++) /*i为1分硬币钱数,可取值0,1,2...,100*/for(j=0;j<=100-i;j+=2)...
2007-10-07 00:19 | 阅读 1294 次 | 评论 0 条

C_爱因斯坦的数学题

爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶? *问题分析与算法设计根据题意,阶梯数满足下面一组同余式:x≡1 (mod2)x≡2 (mod3)x≡4 (mod5)x≡5 (mod6)x≡0 (mod7) *程序说明与注释#include<stdio.h>int main(){int i=1; /*i为所设的阶梯数*/while(!((i%2==1)&amp;&amp;(i%3==2)&amp;&amp;(i%5=...
2007-10-05 04:42 | 阅读 1415 次 | 评论 0 条

C_百钱百鸡问题

中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何? *问题分析与算法设计设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在0~20之间;同理,y的取值范围在0~33之间,可得到下面的不定方程:5x+3y+z/3=100x+y+z=100所以此问题可归结为求这个不定方程的整数解。由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。 ...
2007-10-05 04:41 | 阅读 1768 次 | 评论 1 条

C_素数幻方

求四阶的素数幻方。即在一个4X4 的矩阵中,每一个格填 入一个数字,使每一行、每一列和两条对角线上的4 个数字所组成的四位数,均为可逆素数。 *问题分析与算法设计有了前面的基础,本题应当说是不困难的。最简单的算法是:采用穷举法,设定4X4矩阵中每一个元素的值后,判断每一行、每一列和两条对角线上的4个数字组成的四位数是否都是可逆素数,若是则求出了满足题意的一个解。这种算法在原理是对的,也一定可以求出满足题意的全部解。但是,按照这一思路编出的程序效率很低,在微机上几个小时也不会运行结束。这一算法致命的缺陷是:要穷举和判断的情况过多。充分利用题目中的“每一个四位数都是可逆素数”这一条件,可以...
2007-10-05 04:41 | 阅读 1991 次 | 评论 0 条
浏览456169次