c语言nr
① c语言——计算p=n!/(n-r)!
注意n的取值范围
#include <stdio.h>
int jie(int n)
{
if(n==1||n==0) return 1;
else
{int sum=1,i;<br/> for(i=1;i<=n;i++)sum*=i;<br/> return sum;<br/> }
}
void main()
{
int n,r;
while(scanf("%d%d",&n,&r))
{
printf("%d\n",jie(n)/jie(n-r));
}
}
② C语言中 -> 是什么意思
rp->nr_running==rp->cfs.nr_running
rp是一个结构体的指针,这个结构体中含有nr_running这个成员
rp是一个结构体的指针,这个结构体中含有cfs这个成员,cfs刚好又是一个结构体,cfs中刚好也有nr_running相同名字的成员
p=class->pick_next_task(rq)
class是一个结构体的指针,这个结构体中有一个成员pick_next_task,这个成员pick_next_task是真想函数的指针
void*(*start_rtn)(void)
start_rtn是一个指向 void* fun(void)类型的指针.
③ c语言编程用的符号有哪些
如果真正掌握了C 语言,你就能很轻易的回答上来。这个问题就请读者试着回答一下吧。本章不会像关键字一样一个一个深入讨论,只是将容易出错的地方讨论一下。
表(2.1)标准C 语言的基本符号
C 语言的基本符号就有20 多个,每个符号可能同时具有多重含义,而且这些符号之间相互组合又使得C 语言中的符号变得更加复杂起来。
你也许听说过“国际C 语言乱码大赛(IOCCC)”,能获奖的人毫无疑问是世界顶级C程序员。这是他们利用C 语言的特点极限挖掘的结果。下面这个例子就是网上广为流传的一个经典作品:
#i nclude <stdio.h>
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?main(2,_+1,"%s %d %d
"):9:16:t<0?t<-72?main(_,t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw'
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/"):t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1):0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:
uwloca-O;m.vpbks,fxntdCeghiry"),a+1);}
还没发狂?看来你抵抗力够强的。这是IOCCC 1988 年获奖作品,作者是Ian Phillipps。
毫无疑问,Ian Phillipps 是世界上最顶级的C 语言程序员之一。你可以数数这里面用了多少个符号。当然这里我并不会讨论这段代码,也并不是鼓励你也去写这样的代码(关于这段代码的分析,你可以上网查询)。
④ 数据结构(C语言)求解答 求大侠解答程序含义,尽量讲解详细些,我是初学者
#include<stdio.h>
typedef struct node{
int data;
struct node *next;}Lnode;
Lnode *create(int tag)//创建链表, tag作为创建结束标志,是你要传入的数值
{ Lnode *p,*h=NULL;
int x;
printf("input x:");
scanf("%d",&x);
while(x!=tag) //如果x 不等于tab就为节点分配内存
{ p=(Lnode*)malloc(sizeof(Lnode));//为节点分配内存
p->data=x; //将x放入到节点中
p->next=h; //指向下一个节点,第一次创建h为空,此时正好作为链表结束的标志。此后,这
//将表示在头结点次插入节点。
h=p;//将新的节点p作为第一个节点
scanf("%d",&x);//再次输入要插入节点的值
}
return h;
}
void printd(Lnode *h)//这个是打印链表的值,输入的参数是第一个节点
{ while(h)
{printf("%d ",h->data);
h=h->next;
}
}
Lnode *revelist(Lnode *h)//将链表逆序,传入的参数为链表的第一个节点
{ Lnode *p,*q=NULL;
while(h)
{p=h->next;
h->next=q;
q=h;
h=p;}
return q;
}
void main()
{Lnode *ha,*hb;
int tag;
printf("\n input endtag=");
scanf("%d",&tag);//输入创建键表的结束标志
ha=create(tag);//创建链表
printf("This list is:\n");
printd(ha);//打印链表
ha=revelist(ha);//对链表作逆序处理
printf("\nrevelist is:\n");
printd(ha);//再次打印链表
getch();
}
⑤ C语言中 printf (‘r=%f,s=%f,l=%f\n',r,s,l);
r=%f,s=%f,l=%f\n'
意思是r=?,s=?,l=?
至于%f,表示是用浮点型的形式输出r,s,l的值,并且%f要保留小数6位
如果不够6位,系统会自动填写随机数
后面的\n表示换行
意思是再输出一行就在这个的下面
⑥ C语言,翻译电话号码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
charwords[11][8]={"zero","one","two","three","four","five","six","seven","eight","nine","double"};
intwordslen[11];
intstate;//1double过的0没有过的
chartext1[1000];
chartext[1000];
charresult[100];
voidsetlen()
{
intn;
for(n=0;n<11;n++)
{
wordslen[n]=strlen(words[n]);
}
}
voidzhengli()
{
intl,n;
charc;
intnt=0;
l=strlen(text1);
for(n=0;n<l;n++)
{
c=text1[n];
if(c>='a'&&c<='z')
{
text[nt++]=c;
}
elseif(c>='A'&&c<='Z')
{
c+=('a'-'A');
text[nt++]=c;
}
text[nt]='