① c語言怎麼編寫子程序
C語言 把別的計算機語言中稱「函數」或稱「子程序」的程序塊 統稱為 「函數」,沒有術語「子程序」。別的計算機語言中稱為「子程序」的程序塊,C語言叫 void 型 函數。
C語言 函數定義 出現在 main() 函數 以後的,則要在 main() 函數 以前 加寫 函數原型聲明。
例如:計算10個數的平均值,最大值,最小值子程序:
#include<stdio.h>
#include<stdlib.h>
void f(int n, int *a, int *a_max, int *a_min, float *a_mean);// 函數原型聲明
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int a_max,a_min;
float av;
f(10,a,&a_max,&a_min,&av); // 函數調用
printf("max=%d min=%d mean=%f\n",a_max,a_min,av);
}
//函數定義
void f(int n, int *a, int *a_max, int *a_min, float *a_mean){
int i,b,s;
float m=0.0;
b = a[0]; s=a[0];
for (i=0;i<n;i++){
if (a[i] > b) b = a[i];
if (a[i] < s) s = a[i];
m = m + a[i];
}
*a_mean = m / n;
*a_max = b;
*a_min = s;
}
如果把 函數定義 寫到 main() 以前,就不要 函數原型聲明 那行
② C語言,這個子函數該怎麼寫啊
void conj(char*string1,char*string2)
{int i,j,k;
char s[N*2];
for(i=0;*(s+i)=*(string1+i););
for(i=j=k=0;*(s+i)||*(string2+i);)
{if(*(s+i))*(string1+k++)=*(s+i++);
if(*(string2+j))*(string1+k++)=*(string2+j++);}
*(string1+k)=0;}
③ C語言中的子函數和主函數有什麼聯系啊它們是怎麼編寫的
在C語言中主函數調用子函數,子函數被主函數調用,這就是它們之間的聯系。編寫函數主要有以下步驟,首先對函數進行定義,語法格式為:
類型說明符 函數名 (含類型說明的形式參數表)
{
語句序列
}
形式參數的作用是實現主函數和被調函數之間的聯系。通常將函數所處理的數據、影響函數功能的因素或函數處理的結果作為形參。
然後還要確定函數的返回值及類型,格式為:
return 表達式;
這個語句的另一個作用是結束當前函數的執行。一個函數可以不將任何值返回主函數,此時它的類型標識符為void,可以不寫return語句,也可以寫一個不帶表達式的return;語句。
(3)c語言子函數的正確寫法擴展閱讀
C語言編程書寫規則:
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
④ C語言中 函數使用子函數時一般有哪三個步驟
C語言中想要使用一個自定義函數一般有以下三個步驟:
一、函數聲明:
在開發大型軟體都是採用多人合作開發,一般一個人負責實現幾個功能,這些功能都是通過函數來實現。這總情況下我們一般採用函數聲明和定義分開模式。即函數聲明放在頭文件里。需要用到時包含相應的頭文件及方法庫即可,庫函數就是這種模式。函數的聲明主要是說明函數的名稱以及其所需要的參數類型,參數可以只寫類型不寫變數名,函數定義是需要變數名。
二、函數定義
這一步主要是寫函數功能的實現方法,代碼塊,核心部分。比步可以在函數聲明時進行,即聲明同時定義方法。不過這種方式不適合分享,因為你不一定想分享你的代碼,也許只想分享這個功能。不管哪種方法,在調用函數之前必須進行函數聲明。
三、函數調用
經過以上兩步,我們的函數已經完成。接下來就是使用函數,使用前先搞清楚函數需要有哪些參數,參數一定要傳入合適的類型。第二函數有沒有返回值,返回值的含義。我們可以通過返回值判斷函數的執行情況,一般函數最好有返回值。想清楚後直接調用函數即可。
⑤ C語言 子函數和主函數的放置前後順序區別
先回答下第一個問題,子函數的實現方法可以放在使用它的主函數或者其它子函數後面,但是你的定義一定要在使用它之前;不然編譯器怎麼知道你用的函數square是什麼,這就是我們經常包含頭文件的一個目的,頭文件是一些函數定義或者預編譯命令。
修改是在#include<stdio.h>後面加
int square(int num);
第二個問題:num是在main定義是可以在main作用域內直接使用,或者當做參數傳遞給子函數,你的問題num為什麼可以在子函數中用,首先你子函數的num並非main里的num只是你把他們名字寫成一樣了;main里num是通過值傳遞給子函數的num,實際他們兩個num的內存地址是不一樣的,你子函數換個名字去理解一下。
⑥ C語言編寫子函數
0分。。。自己調吧。
#include <stdio.h>
int IsPrime(unsigned int n){
unsigned int i;
for(i=2;i<n;i++){//對大於1小於n的數進行循環
if(n%i == 0){//如果期間有能整除的數,直接返回0
return 0;
}
}
return 1;//返回1
}
int IsMPrime(unsigned int n){
if(IsPrime(n) ==0){//如果此數本身不是素數直接返回0
return 0;
}
unsigned int p;
unsigned int x;
p=0;
x=n+1;
wihle(x !=1){//求出比x大且與x最近的2的p次方中的p
x=x>>1;
p++;
}
if(pow(2,p) != n+1){//如果此數+1不是2的p次方,則直接返回0
return 0;
}
return IsPrime(p);//判斷p是否為素數,返回判斷值
}
int main(){
unsigned int m;
scanf("%d」,&m);
if(m > 1000){//為了防止輸入的數太大導致機器死掉,限定輸入的數小於1000。
return 0;
}
for(;m>0;m--){//對大於0,小於輸入數的整數挨個進行判斷
if(IsMPrime(m) ==1){//如果是梅森素數直接列印
printf("%d,",m);
}
}
return 0;//結束程序
}
⑦ c語言子程序的寫法,子函數main函數寫哪,還用寫嗎
1、子程序不用寫main函數。
2、每個程序只有一個main函數。(如果在類里看到了main函數那個不是通常意義上的main函數。只是一個名字叫做main的自定函數)。main函數會接受系統傳入的參數。參數是固定的。(但是類里如果見到main函數,肯定是自己定義的參數)。