編寫乙個程式求1 2 n之和,要求用帶引數的巨集實現。

時間 2025-02-14 03:50:23

1樓:網友

#define sum(n) (1+(n))*n)/2#include

void main()

int n,sum;

printf("enter your number:");

scanf("%d",&n);

sum=sum(n);

printf("the sum is %d",sum);

注意#define sum(n) (1+(n))*n)/2這行的n必須帶括號,否則容易出現計算錯誤。

2樓:網友

#include

#define p printf

void main()

int sum,i,n;

p("please enter the number n:");輸入你想要算到結束的數,要不要皆可,直接一句給出n也可*\

scanf("%d",n);

for(i=0;i<=n;i++)

sum=sum+i;

p("1+2+……d%=d%",n,sum);

帶引數的巨集就是指用"#define a b"型別的句子定義引數的程式。

這個例子就是乙個用帶引數的巨集做的。

貌似一樓的更正規一些。

向一樓的學習。

用c語言編寫乙個程式計算n!,要求:定義乙個帶引數的巨集,計算n!,並在主函式中使用這個巨集。

3樓:

如果要用巨集來實現階乘運算的話,要用到巨集巢狀和遞迴,有十分詳細的文件。

用c語言編寫程式∑1!+2!+……+n!

4樓:南打北來

你得有乙個大整數的類,才能解決這個問題……或者用陣列去裝這個結果,直接的double型別都不夠你使的……

編寫程式:計算並輸出1+2+3+...+n的值 要在子函式中實現,輸入和輸出在主函式完成

5樓:網友

第二行需要加乙個函式名,例如改為:

long f(int n)

s的定義必須初始化為0,所以第五行要改為:

long s=0;

倒數第二行的long(n)應該改為用函式名來呼叫子函式,所以應該是f(n)

6樓:風若遠去何人留

第乙個 long不能用作函式名,因為這個是關鍵字。

你可以寫成。

int func(int n)

如果你是想用long 做返回值型別, 那對於這個是沒什麼必要的。

第二個 函式里面 s初始值應該為0

比如int s=0;

第三個下面函式呼叫,也要跟著第乙個改一下。 比如 func(n)

c語言編寫乙個程式,求三個數中最小值,要求帶參巨集實現

7樓:網友

#include

#define max(a,b) (a)>(b)? a=a:a=b)

下面主程式裡可以改成。

int main()

8樓:風若遠去何人留

適用c語言中的?:操作,可以很方便的實現。

#define min(a,b,c) a>b?(b>c?c:b):(a>c?c:a)

其原理為,先比較a和b,再用較小值與c比較。

不過用乙個比較兩個數,得到最小值的巨集過渡,**會更清晰。

#define min2(a,b) (a>b?b:a)#define min3(a,b,c) (min2(a, min2(b,c)))

用C 編寫一個求100以內的。素數的程式。謝謝,

這是按照質數的定義最樸素的演算法。就是說除了一和它自身之外,任何數都不是它的因子。符合這樣條件的數就是一個素數。這程式的內迴圈,就是窮舉2 i 1這樣的數。如果這之間某個數能夠整出i。就提前退出迴圈。反過來,如果再整個內迴圈中一個滿足條件的數都沒有找到,那麼,內迴圈就會因為超過迴圈範圍而退出內迴圈。...

c語言編寫計算ab的程式,用C語言編寫一個程式,求a b的絕對值 的和

如下 int a 0 int b 0 printf a scanf d a printf n printf b scanf d b printf n printf a b d a b 效果圖 執行結果圖 拓展資料 c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易...

編寫一lisp程式cad,求大神幫忙寫一個cad的lisp程式

試程式設計序如下,請校核。defun hang p r n repeat n command circle p r setq l cons p l p polar p 0 r r l defun sjy p r n i p1 p2 p3 l setq i 0 repeat n hang p r n ...