#include stdio.h
成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。
int Max(int a, int b); // 定義函數(shù)Max
void main() //無返回值主函數(shù)
{
int x, y, z; //定義整型變量x,y,z
printf("Please input two integers : "); //讓用戶輸入兩個(gè)整數(shù),務(wù)必要用英文輸入法輸入“,”
scanf("%d,%d",x, y); //將用戶輸入的整型數(shù)分別存放到x,y中
if(x==y) //判斷x是否等于y,是則輸出“這兩個(gè)整數(shù)相等”
{
printf("The two integers are equal!");
}
else //否則,將x,y的值放入實(shí)參中并執(zhí)行Max函數(shù)中的內(nèi)容
{
z = Max(x, y); //實(shí)參
printf("The biger number is %d\n", z); //向屏幕輸出較大的數(shù)
}
}
int Max(int a, int b) //形參
{
int c = 0; //定義整型變量c
c = ab?a:b; //用三目運(yùn)算符將a,b值中大的賦值給c
return c; //返回c的值
}
//望采納^_^
第一題:求類似斐波那契數(shù)列中的第n個(gè)數(shù)
先來看下什么是斐波那契數(shù)列:
指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、34、……在數(shù)學(xué)上,斐波那契數(shù)列以如下被以遞推的方法定義:F(1)=1,F(xiàn)(2)=1, F(n)=F(n-1)+F(n-2)(n=3,n∈N*)
數(shù)列中的每個(gè)數(shù),都等于前兩個(gè)數(shù)字之和。第一數(shù)和第二數(shù)規(guī)定為1.
回到圖中的程序,n=2時(shí),返回2,那么就是將第一個(gè)和第二個(gè)數(shù)規(guī)定為2。
即:
fib(1)=2, fib(2)=2
根據(jù)公式:
fib(3) = fib(1)+fib(2)=2+2=4
代碼的用遞歸實(shí)現(xiàn),若不懂遞歸,可google之或百度之。
第二題:
main函數(shù)里的變量a,b,c都沒有用上,迷惑你用的?;氐絛
d=f(f(3,4), f(3,5))
再看f這個(gè)函數(shù)
f(3,4) = f(x,y)=(y-x)*x=(4-3)*3=3
f(3,5) = (5-3)*3=6
因此,d=f(f(3,4), f(3,5))=f(3,6)=(6-3)*3=9
第三題 這個(gè)函數(shù)里面的賦值寫法我還沒見過,容我再想想。
fun中的x是靜態(tài)局部變量,只初始化一次。
調(diào)用fun(1)時(shí),開始x=1,y=1,執(zhí)行x=x+y;后x=2,所以輸出 2。
調(diào)用fun(2)時(shí),開始x=2(因?yàn)閤是靜態(tài)局部變量,保持為上次調(diào)用fun后的值),y=2,執(zhí)行x=x+y;后x=4,所以輸出 4。
所以,最后的輸出是 2 4。