大家帮忙看看这个C语言.怎么执行

作者&投稿:楚虹 (若有异议请与网页底部的电邮联系)
C语言.大家帮忙看看这个程序 一个地放不知道怎么执行~

结果: 55
1.func((x- - ,y++,x+y),z - - ); 两个参数.
第一个参数((x- - ,y++,x+y)为逗号表达式,最后一个表达式x+y 为逗号表达式的值.
第二个参数z - -
2.所以func((x- - ,y++,x+y),z - - ); 等价func(13,8)此时r=func((x- - ,y++,x+y),z - - );变量r为21
3.r+=func(x,y);--->r=r+func(x,y); --->r=21+34=55
4.由于c为静态变量,所以c+=a+b; --->c=c+(a+b)---->c=21+13=34

#include
#include
void main()
{
int n , m , p , q , k ;
printf("Put in an even number(>4):
");
scanf("%d",&n);
for ( m=2 ; m<n/2; m++)
{
if( m%2 ) continue;
/*for ( p=2; p<=sqrt(m); p++)
{
if (m%p==0) break;这个是意思?
k=n-m ;
for ( q=2; q<=sqrt(k); q++)
{
if (k%q==0) break;
}
}*/
if( !((n-m)%2 )) printf("%d=%d+%d
",n,m,n-m) ;
}
printf ("The theory is proved!
");
}

此代码原形是是约瑟夫问题——也叫圆圈报数问题,猴子选大王问题: 你到网上搜一下这一类问题吧

具体解释一下 外循环的意思是报完数了最后剩下一个人报数结束
内循环的意思是 报数 然后出队
数据结构比较类似指针,p[i]存放的是编号为i的人的下一个人的编号 当前报数的人的编号是test head是记录前面的人

动态模拟一下 刚开始17个人
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0报数1 然后test=1 head=0
1报数2 然后test=2 head=1
跳出循环 p[1]=p[test] //p[1]=p[2]=3 相当于编号为2的人出队了 test=3
然后从3继续报数
整体的过程就是17个人围成一圈报数从编号为0的开始报数 报到3的人就退出去 然后继续报数
输出的是最后留下来的那个人

经过手算 出队顺序应该是
2 5 8 11 14 0 4 9 13 1 7 15 6 16 12 3 10
所以最后输出10 不知道答案对不对呢

c语言问题 大家看看这个程序哪错了
答:include <stdio.h> int main (){ int a,b;char n;scanf("%d,%d,%c",&a,&b,&n);switch(n){ case '+':printf("%d\n",a+b);break;case '-':printf("%d\n",a-b);break;case '*':printf("%d\n",a*b);break;case '/':printf("%d\n",a/b);break;} return 0;} 主...

C语言的大神帮我看看哪里写错了?
答:已经修改完成,运行通过:include <stdio.h> int isPrime(int x, int KnownPrimes[], int numberOfKnownPrimes );int main(void){ const int number=10;int prime [number]= {2};//有修改 int count = 1;int i = 3;while ( count< number){ if(isPrime(i,prime,count)){ prime[count...

【C语言】大家帮忙看看这个分解因数的程序~~!!
答:最前面要加头文件和函数定义 inlcude <stdlib.h>//system("pause")在这个头文件定义 void recurPrintFactor(int n);最主要的问题如下程序中的解释:void recurPrintFactor(int n){ int x; x=getfactor(n); if(x==0) printf("%d",n); else//else下有两句,所以要括号括起来 {/...

大家帮忙看看我的这段C语言程序在keil C51里为什么不能通过编译 高分...
答:出现ATTEMPT TO DEFINE AN ALREADY DEFINED LABEL,表示以前已经定义过一个标号,要换一个标号 movc a,@a+dptr movc a,@a+pc 对于这两条指令,查了一下网上的兄弟的解释:movc a,@a+dptr 从DPTR开始偏移A个地址的数读取到A中.DPTR一般为数据段的首地址.movc a,@a+pc 从PC指令地址开始偏移A...

大家帮我看看这道C语言题目出了什么问题
答:思路没有错,产生多个随即数的话,要把srand(time(NULL))放在for循环前面 也就是说,这函数只需要执行一次,后面每次调用rand()就可以了,不然在你这个for循环里产生的数都是相同的

大家帮忙一下c语言怎么做呀
答:include <stdio.h> main(){ double e=1.0;double t=1.0;int i;i=1;while(1){ t = t / (double) i;if (t < 1E-05) break;e = e + t;i++;} printf("e=%g\n",e);return 0;} 图不清晰,10的负几次方 自己 纠正一下。e 是自然对数的底,应等于 2.718281828......

大家帮忙看看我的这段C语言程序在keil C51里为什么不能通过编译 高分...
答:void count(void) interrupt 0 using 0 { Delay(10);if(INT0==1) goto end00;Pass++;if(Pass==100) Pass=0;end00: ; 只要在这里加上冒号,就可以通过编译。} 你的错误提示,是说你的"REG51.H"文件内容有错误,而且不少。如果想省事,可以把这个文件删除,再重新安装KEIL,即可解...

帮我看看这道题用C语言怎么编
答:include <stdio.h> int NumCube(int i){ return (i*i*i);} int IsDaff(int n){ int ge,shi,bai,flag=0;ge=n%10;shi=n/10%10;bai=n/100;if(NumCube(ge)+NumCube(shi)+NumCube(bai)==n)flag=1;return flag;} void main(){ int i;for(i=100;i<=999;i++)if(IsDaff(i...

C语言开关灯问题,麻烦大神们帮我看看这个程序哪里错了啊,结果不对啊...
答:两个错误:1、int a[6000]={1};这句。你这只是将a[0]赋值1,其他都是0,数组默认以0填充,应该改为:int a[6000];for(i=0;i<6000;i++)a[i]=1;2、第二层循环里:if(a[j]==0)a[j]=1;if(a[j]==1)a[j]=0;这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又...

关于C语言编程问题。乘0.5和除2。怎么结果不一样。大家帮忙看看。
答:类型问题。C语言的整型 int 数据的算术运算结果还是整型,2是整型值,除2的结果还是整型(结果的小数部分被丢掉了),乘0.5就变成浮点型了。要得到正确的结果可将除2改成除 2.0