大神,請教一道c語言題目 呼叫自定義函式search int

2021-07-25 23:44:17 字數 5948 閱讀 1636

1樓:微俊

#include

#include

#define n 20

int arr[n];

int search(int list, int n, int x)int main()

return 0;}

c語言程式設計問題問題描述】定義函式void sort(int a[],int n),用選擇法對陣列a 中的元素升序排列。自定義

2樓:匿名使用者

#include

#include

// 選擇插入法排序

void sort(int a, int n)}int main()

return 0;}

大神快來 怎麼用c語言自定義函式找出陣列中與指定值最接近的數

3樓:阿爾邁凡

只要遍歷陣列

然後將每個元素與要查詢的值進行相減

取減得的絕對值最小的那個就是了

下面是一個簡單的**

#include

#include

int find(int *a,int n,int x)}return a[r];

}int main(int argc,char **argv)printf("\n");

printf("與5最接近的數是: %d\n",find(a,20,5));

return 0;}

c語言中怎麼呼叫自定義函式

4樓:布樂正

可以的,前提是,在使用一個函式之前必須先對他進行宣告:

//void b();宣告b函式的存在。

void a()

void b()

或者#include

#include

#include

int fa(int n)

void main( )

{int n,q;

scanf("%d",&n);

從函式定義的角度看,函式可分為庫函式和使用者定義函式兩種。

(1)庫函式

由c系統提供,使用者無須定義, 也不必在程式中作型別說明,只需在程式前包含有該函式原型的標頭檔案即可在程式中直接呼叫。在前面各章的例題中反覆用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函式均屬此類。

(2)使用者定義函式

由使用者按需要寫的函式。對於使用者自定義函式, 不僅要在程式中定義函式本身, 而且在主調函式模組中還必須對該被調函式進行型別說明,然後才能使用。

5樓:打孃胎裡喜歡你

如下:如果自定義函式在main()函式之後定義的話,,就得在main()前先宣告,main()中呼叫,main()後定義,如下簡易**:

#include

void print(); //使用者自定義函式宣告void main()

void print() //使用者自定義函式定義如果自定義函式在main()之前已定義,則只需要進行main()前定義,和main()中呼叫了,簡單**如下:

#include

void print() //使用者自定義函式定義void main()

6樓:尖子生管理員小宇

本次課程主要講解vs13下如何使用輸出函式printf,以及相關的格式輸出說明符的呼叫,對於不是計算機專業想要學程式設計的學生來說,是一個很好的基礎教程,希望大家可以認真跟我一起從0基礎開始學開發!

7樓:臨水

如果自定義函式是放在另外一個檔案中,就加上#include"檔名.h";

如果在同一個檔案中,就先定義函式,再在main函式中呼叫

8樓:匿名使用者

跟呼叫庫函式一樣,只不過這個自定義函式得你自己寫,如果自定義函式在main()函式之後定義的話,,就得在main()前先宣告,main()中呼叫,main()後定義,如下簡易**:

#include

void print(); //使用者自定義函式宣告void main()

void print() //使用者自定義函式定義如果自定義函式在main()之前已定義,則只需要進行main()前定義,和main()中呼叫了,簡單**如下:

#include

void print() //使用者自定義函式定義void main()

9樓:匿名使用者

有些自定義函式可能會被頻繁的呼叫,所以寫在一個c檔案裡是不太方便的。應該把這些自定義的函式寫在一個c檔案裡,同時在一個標頭檔案.h檔案裡宣告。

主函式可以通過引用該標頭檔案然後呼叫需要的自定義函式。

舉例如下:

1. 在標頭檔案(.h)裡宣告自定義函式,定義使用者寫的函式;

2. 在一個c語言檔案裡寫下自定義函式的實現方式,可以寫在主函式前,也可在主函式後(需在標頭檔案前宣告函式);

3. 在主函式中呼叫自定義函式,別忘了標頭檔案的宣告;

4. 最後編譯所有的涉及到的c檔案;

#include

void number(int);

int main()

return 0;

}void number(int n)

10樓:匿名使用者

和呼叫庫函式一樣,

只是函式體要你自己寫.如下:

int myfunc()

main()

輸出結果:

lib func!

in myfunc printf!

11樓:雍寒縱飛捷

#includeint

split(int*,int*,int*);intmain()

split(a,positive,negative);

printf("positive\t\tnegative\n");

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

}int

split(int

a[20],int

positive[20],int

negative[20])

return

positive[i];

return

negative[i];

} 你再試試

12樓:匿名使用者

函式名(引數1,引數2……引數n)

c語言中能否在一個自定義函式中呼叫另一個自定義函式?

13樓:七班趙子龍

當然copy

可以!c語言程式的最基本的模組就是函式,

該程式規定:任意函式都可以呼叫其它任意一個函式,包括函式本身;

1、函式呼叫自己本身, 這種稱為遞迴;

通過遞迴,計算1+2+3+...+n值的**:

2、自定義函式呼叫其它自定義函式的例子:

這個例子就是主函式呼叫自定義函式fun2,然後fun2呼叫另一個自定義函式fun1;

c語言中自定義函式樣引用一個陣列該什麼辦?

14樓:七叔之家

呼叫時:

sum=fun1(a[n]);

printf("sum=%d\n",sum);

定義中:

int fun1(int a[n],int i)注意定義的函式int fun1(int a[n],int i),在呼叫函式的時候語法是sum=fun1(int a[n],int i);錯誤在於呼叫函式時()內的引數應該和定義時一樣

c語言 在自定義函式中呼叫另一個自定義函式顯示未找到函式的定義

15樓:金色潛鳥

函式定義若寫在main(){} 後面, 則main() 以前要有函式原型宣告。例如:

#include

void drawboard(); // 函式原型宣告int testplaywin(); // 函式原型宣告int main()

void drawboard()

int testplaywin()

16樓:匿名使用者

把被呼叫函式寫到呼叫函式上面去,這樣就可以免去宣告。

這裡你也可以把被呼叫函式剪下到呼叫函式上面去做一下測試。

17樓:自我程式設計

自定義函式如果只是被main呼叫,寫在main上面就可以。

但是被其他自定義函式呼叫,你要先申明啊。或者直接在最上面宣告函式

c語言自定義函式返回一個陣列的問題

18樓:雙槍老椰子

方法1:利用全域性變數

分析:全域性變數作為c語言的一個知識點,雖然我們都瞭解它的特點,但在實際教學過程中應用得並不是很多。由於全域性變數的作用域是從定義變數開始直到程式結束,而對於編寫有多個返回值的c語言函式,我們可以考慮把要返回的多個值定義成全域性變數。

當函式被呼叫時,全域性變數被更改,我們再把更改後的全域性變數值應用於主調函式中。函式被呼叫後被更改後的全域性變數值即為函式的數個返回值。下面以一個例項演示該方法的應用。

例項1:編寫函式求3個數中的最大值與最小值。

方法:把最大值、最小值分別定義成2個全域性變數max、min,在使用者自定義函式中把求出來的最大值與最小值分別賦給全域性變數max、min。函式呼叫完畢後全域性變數的max、min值即儲存了函式要求返回的值。

程式參考**如下:

#include "stdio.h"

#include "conio.h"

int max,min;/*定義兩個全域性變數用於儲存函式返回值*/

void max_min(int a,int b,int c) /*定義求最大最小值的函式*/

main()

除錯結果如下:

請輸入3個整數:

5,-6,2

三個數中的最大值為:5;最小值為:-6

注意:該方法雖然可以實現有多個返回值的函式,但由於全域性變數不能保證值的正確性(因為其作用域是全域性,所以程式範圍內都可以修改它的值,如果出現錯誤將非常難以發現),並且全域性變數增加了程式間模組的耦合,所以該方法要慎用。

方法2:傳遞陣列指標

分析:在教學過程中,我們知道c語言函式引數的傳遞方式有值傳遞與地址傳遞。當進行值傳遞時,主調函式把實參的值複製給形參,形參獲得從主調函式傳遞過來的值執行函式。

在值傳遞過程中被調函式引數值的更改不能導致實參值的更改。而如果是地址傳遞,由於傳遞過程中從實參傳遞過來的是地址,所以被調函式中形參值的更改會直接導致實參值的更改。因此,我們可以考慮把多個返回值作為陣列元素定義成一個陣列的形式,並使該陣列的地址作為函式的形式引數,以傳址方式傳遞陣列引數。

函式被呼叫後,形引數組元素改變導致實參改變,我們再從改變後的實引數組元素中獲得函式的多個返回值。以下例項演示該方法的應用。

例項2:編寫函式求一維整形陣列的最大值與最小值,並把最大值與最小值返回給主調函式。

方法:以指標方式傳遞該一維陣列的地址,然後把陣列的最大值與陣列的第一個元素交換,把陣列的最小值與最後一個元素交換。函式被呼叫完畢後,實引數組中的第一元素為陣列的最大值,實引數組中最後一個元素為陣列的最小值,從而實現返回陣列的最大值與最小值的功能。

程式參考**如下:

#include "stdio.h"

#include "conio.h"

void max_min(int *ptr,int n) /*定義求陣列最大值最小值的函式,傳遞陣列指標*/

if(*(ptr+n-1)>*(ptr+i))/*最小值與最後一個元素進行交換*/ }

} /*呼叫最大最小值函式*/

main()

除錯結果如下:

請輸入6個整形數,以空格隔開:

5 8 9 32 -6 4

max=32,min=-6

注意:該方法適用於多個返回值的資料型別一致的情況。當返回值資料型別不一致時,不適用該方法。

C語言的一道題目,C語言tow函式題目一道

include include 標頭檔案 include 標頭檔案 int main int a 111 b 100 c 111 n,m,k 0,t,l 0,s scanf d d n,m srand unsigned time null srand 就是給rand 提供種子 for int i 0...

求一道c語言題目解答求一道C語言題目解答

pow 函式原型是 double pow double,double n pow 1 rate,year 這句裡year 是int 型,改為double 另外輸入函式 將 f 改為 lf 這句話的意思是 你輸入的時候要用這種形式 money 1000.0,year 2.0,rate 0.5money...

一道c語言的題目

樓主可能用的vc,vc裡面int是4位元組,所以a佔4個位元組,其中2個低位位元組是k和i共用的.所以s i 0 0x39 s i 1 0x38 是將k的兩個低位位元組賦值了0x39和0x38,而兩個高位位元組沒有賦值,仍是初始值,vc裡面沒有初始化的變數一般是各位元組為0xcc,所以k的值為0xc...