当前位置: 代码迷 >> C语言 >> Cの魅力
  详细解决方案

Cの魅力

热度:118   发布时间:2005-03-12 17:19:00.0
Cの魅力

Cの魅力

刚刚又复习了一遍C语言,又有不少心得。哎~看来C语言不管怎么去学都学不完啊!

例:如果我想要写一个程序,当sex=0的时候表示母鸡,1的时候表示公鸡,用number表示鸡的数量。并把他们用在一个英文句子中显示出来,你会如何做?(请注意英语中的可数名词的复数要+s)

也许你会去分配大量的if语句,并写出四个句子――你不得不这样做,因为我并没给你多余的变量或者字符串,你可不能违背神的意志自己创造出几个新的东西出来哦。

void main(){ int sex=0,number=1; if(sex==0) if(number==1) printf("There is %d hen in the garden.\n",number); else printf("There are %d hens in the garden.\n",number); else if(number==1) printf("There is %d cock in the garden.\n",number); else printf("There are %d cocks in the garden.\n",number); getch(); }

程序原理:先判断sex,确定这只(些)鸡是公的还是母的,然后再判断number,确定是应该用单数还是复数。

这样是不是很烦琐?其实C语言要解决这样的问题只用“一句简单的printf()函数”就够了。

void main(){ int sex=0,number=10; printf("There %s %d %s in the graden.\n", number==1?"is":"are", number, number==1?(sex?"cock":"hen"):(sex?"cocks":"hens")); getch(); }

程序原理:收费50元,谢谢~~~ ^-^

为什么可以这样用?:呢?我们都知道,在C语言中任何一个""都是一个字符串。比如"abc"就是一个字符串。 但是如果我们这样定义一个int a="abc";会怎么样?也许大家都知道了,a中的值就是"abc"的首地址。所以我们得到一个结论,"abc"如果把它看成是一个整体,那么它的值不是一个字符串,而是指向"abc"首地址的一个数据(标准编译模式下)。

于是,我们可以这样解释number==1?"is":"are"了。 number==1?("is"的首地址):("are"的首地址) 如果number==1,则表达式的值就是"is"的首地址 如果number!=1,则表达式的值就是"are"的首地址 所以,表达式的值被printf()函数中的%s按照字符串的首地址接收、显示出来。

同样的道理,我们可以去解释sex?"cock":"hen"

没见过这样的?:用法吧,去写一个这样的语句去崩溃你的C语言老师~~我们的C语言老师是一个年轻漂亮的女研究生,基础知识非常的牢~~她第一次见也头晕了半天。

~~~让女孩子头晕~~~这就是Cの魅力

to be continue...

[此贴子已经被作者于2005-5-4 14:55:57编辑过]

搜索更多相关的解决方案: 英语  魅力  C语言  number  变量  

----------------解决方案--------------------------------------------------------
你终于弃暗投明了
----------------解决方案--------------------------------------------------------
唉,这个.....这个......小孩子学好难学坏易,楼上的你的责任不小
----------------解决方案--------------------------------------------------------
你还不是一样?
----------------解决方案--------------------------------------------------------
呵呵!可以发了哦!
----------------解决方案--------------------------------------------------------
(" 靠什么哦  就这个原理50元晕哦");

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
楼主真上强啊

请楼主推荐几本学习c的高级编程的书!
谢谢
----------------解决方案--------------------------------------------------------
从楼主的程序,偶做一个大胆的推测:楼主还是个C语言菜鸟!!!!还需努力!

注:并非人身攻击!!!!!
----------------解决方案--------------------------------------------------------
呵呵.不过说的真的是蛮经典的!
----------------解决方案--------------------------------------------------------
  相关解决方案