#include<stdio.h> int f(int,int); main() { int i=2,p; p=f(i,i+1)

#include<stdio.h>
int f(int,int) ;
main()
{ int i=2,p;
p=f(i,i+1);printf ("%d\n",p);
}
int f(int a , int b)
{ int c;
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
请问输出结果为什么是-1,main()这一段和后面这一段什么关系啊?p和abc。。。

第1个回答  2016-08-17
int f(int,int) ;是声明函数

int f(int a , int b)函数具体定义
{ int c;
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
p=f(i,i+1);调用函数执行f(2,3)函数返回值为-1本回答被提问者采纳

#include<stdio.h> int f(int,int); main() { int i=2,p; p=f(i,i...
int f(int,int) ;是声明函数 int f(int a , int b)函数具体定义 { int c;c=a;if(a>b) c=1;else if(a==b) c=0;else c=-1;return(c);} p=f(i,i+1);调用函数执行f(2,3)函数返回值为-1

#include<stdio.h> void main() { int f(int a, int
p=f(i,++i); 在执行这一步时i编程了3,所以传入函数f时a和b都等于3返回值为0 ++i时i的值就变了。改为p=f(i,i+1)就好了

#include <stdio.h> main( ) { int i=2,p; p=f( i++, ++i ); printf...
include <stdio.h> int f( int a, int b ){ int c;if(a>b) c=1;else if(a==b) c=0;else c=-1;return(c); }main( ) { int i=2,p; p=f(i++,++i); \/\/i++不说了 这个是执行完毕后++ 但是后面这个++i这个是执行前++\/\/那么此时f函数的两个入参都是3 3 相等 所以...

#include“stdio.h" main() { int i; for(i=1;i<=5;i++) { if(i%2...
if(i%2) 即i为奇数执行,但是要注意执行的有两处即printf("*");和printf("#");即当i=1时输出的是 *# 而不是 * 。i为偶数的时候,执行else continue;即跳过后面剩余循环体printf("#");直接i++,继续进行if判断。综上,i=1输出 *# ;i=2不输出;i=3输出 *# ;i=4不输出;i=5...

#include<stdio.h> #include<math.h> main() { int i
题意是某项的值小于1e-5,而不是它们总和小于这个值,和是不会小于这个值的,所以循环不会停,不会输出

#include<stdio.h> main() {int i;for(i=1;i<=5;i++){if (i%2) put...
你的理解正确。当为奇数时,执行了putchar('<');之后,程序继续走,执行了后面的putchar('>')

...#include <stdio.h> main() {int i,n=0; for(i=
首先要知道,最外层是forprintf循环,里面嵌套dowhile循环,然后dowhile循环里面嵌套ifcontinue循环。i = 2时:进入dowhile循环,if(i%3)为真,跳出ifcontiue循环,不执行n++,接着判断while(!i)为假,跳出dowhile循环,执行循环外n++,此时i=2, n=1 接着执行for循环i++ i = 3时:进入dowhile...

#include<stdio.h> main(){int i;for (i=1;i<5;i++)
首先i=1,i%2=1,执行printf(" * "),然后执行printf("#");,进入下一个循环;其次i=2,i%2=0,执行else continue,直接进入下一个循环;再次i=3,i%2=1,执行printf(" * "),然后执行printf("#");,进入下一个循环;第四i=4,i%2=0,执行else continue,直接进入下一个循环;第...

#include<stdio.h> main() int k=4,m=1,p,i; for(i=0;i<2;i++) p=...
主要原因是f函数中的m和i是静态变量 每次函数调用结束,它们二者的值也会保存的。

以下程序运行后的输出结果是 #include<stdio.h> int f(int x, int...
由于f(int x,int y)函数返回的值是(y-x)*x,相当于说f(int x,int y)=(y-x)*x;这里主要是计算嵌套函数f(f(a, b), f(a, c));先将f(a, b)和 f(a, c)带进去,得到f((b-a)*a,(c-a)*a)=f((4-3)*3,(5-3)*3)=f(3,6)最后计算f(3,6)=(6-3)*3=9,所...

相似回答