A. 在c語言中怎麼將子函數中的數組和函數調用出來
來傳送子函數中的數組有多種方法——可以通過函數返回值返回地址傳遞數組;也可以通過函數輸入參數來傳遞數組;還可以通過全局變數來傳遞數組。
子函數本身可以直接在作用域中進行調用。
1、通過函數返回值返回地址傳遞數組。
聲明函數時需要聲明函數返回值類型為對應數組的地址,此時可以返回數組的地址,結合數組元素的地址關系可以傳遞整個數組,同時可以根據數組的特性傳遞多個參數。
注意:子函數是C語言模塊化編程思想的核心,其方法是通過輸入介面和輸出介面實現對黑盒的調用,故對其內部數據的輸入和調用也需要通過輸入介面、輸出介面和程序的公共區域實現。
B. 求教:c語言子函數調用的方法(詳細點)(例如:A,B,C,D都是子函數,想實現他們之間隨時互相調用,可以么
他們之間可以相互調用,只是傳值的問題,最簡單的就是只調用一個函數,然後你可以以此類推。
max(int x,int y) //聲明函數
{
int z;
z=x>y?x:y;
return(z);
}
main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b); //調用函數
printf("Max is %d",c);
}
利用參數進行值的傳遞。
如果max();需要再調用其他的函數,同樣利用值的傳遞方法,或者無值也可以調用其他函數,函數本身也可以調用自己本身。
令者,如果a函數在執行過程中要調用b函數,而在調用b函數的同時又要調用a函數,這些屬於間接調用,是無終止的,顯然,程序中不應出現這種無終止的遞歸調用,而只應該出現有限次數的、有終止的遞歸調用,這可以用if語句來控制,只有在某一條件成立時候才繼續執行遞歸調用,否則就不再繼續。
希望以上能夠幫助到你
C. c語言中怎麼調用函數謝謝
C語言中,函數調用的一般形式為:函數名(實際參數表)對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變數或其它構造類型數據及表達式。各實參之間用逗號分隔。
#include<stdio.h>
int fun(int x, int y); // 函數聲明,如果函數寫在被調用處之前,可以不用聲明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函數的調用,調用自定義函數fun,其中a,b為實際參數,傳遞給被調用函數的輸入值
}
// 自定義函數fun
int fun(int x, int y) // 函數首部
{ // {}中的語言為函數體
return x>y ? x : y; // 返回x和y中較大的一個數
}
函數實參
函數作為另一個函數調用的實際參數出現。這種情況是把該函數的返回值作為實參進行傳送,因此要求該函數必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調用的返回值又作為printf函數的實參來使用的。在函數調用中還應該注意的一個問題是求值順序的問題。
所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。對此,各系統的規定不一定相同。介紹printf 函數時已提到過,這里從函數調用的角度再強調一下。
以上內容參考:網路-函數調用
D. C語言如何調用函數
C語言中,函數調用的一般形式為:
函數名(實際參數表)
對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變數或其它構造類型數據及表達式。各實參之間用逗號分隔。
#include<stdio.h>
intfun(intx,inty);//函數聲明,如果函數寫在被調用處之前,可以不用聲明
voidmain()
{
inta=1,b=2,c;
c=fun(a,b);//函數的調用,調用自定義函數fun,其中a,b為實際參數,傳遞給被調用函數的輸入值
}
//自定義函數fun
intfun(intx,inty)//函數首部
{//{}中的語言為函數體
returnx>y?x:y;//返回x和y中較大的一個數
}
(4)c語言如何調用子函數擴展閱讀
C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。但是C語言允許在一個函數的定義中出現對另一個函數的調用。
這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。這與其它語言的子程序嵌套的情形是類似的。其關系可表示如圖。
圖表示了兩層嵌套的情形。其執行過程是:執行main函數中調用a函數的語句時,即轉去執行a函數,在a函數中調用b 函數時,又轉去執行b函數,b函數執行完畢返回a函數的斷點繼續執行,a函數執行完畢返回main函數的斷點繼續執行。
E. C語言中,主函數中已經賦值的數組怎麼調用到子函數
1:子函數中sum沒有初值,應該為
float
sum=0;
2:sum/10的結果為浮點型,你定義一個整型的avg1接收會產生錯誤,應該定義一個浮點型變數接收值
3:你這里是三個學生,你在函數中不應該除以10,另外函數中的循環取得的sum值是一個學生五門功課的成績總和,如果要求每一門功課的
平均成績,你的循環需要修改
4:函數的調用是壓棧的過程,你的函數沒有返回值所以不可以return
b[5],如果想要返回一個數組你應該在主函數中先定義然後向自定義函數中傳入子函數地址,這樣就可以保存每門功課的成績了
希望可以幫到你
F. C語言中怎樣調用函數(舉個例子)
C語言中調用函數的方法及步驟:
工具/原料:C語言
1、首先需要輸入想要調用的函數。
G. C語言中一個子函數怎麼調用另一個子函數的運算
方法很多。
主要是要將不同類型傳遞給fun2處理。
最簡單float類型最大,fun2的參數類型就定義為float,然後運算結果返回float類型。在main函數用a3,b3,c3接收的時候強轉型。
另一種方法,把變數都轉換成一種類型傳遞。這里用union共用體類型就比較適合。還方便擴展,如果想添加其他類型還可以在union里添加。
我這里代碼就用第二種方法寫。
#include <stdio.h>
typedef union data{
char c;
int i;
float f;
}DA;
void fun1(void);
DA fun2(DA n1,DA n2,int nType);//nType=1:char類型。nType=2:int類型。nType=3:float類型。
int main()
{
fun1();
return 0;
}
void fun1(void)
{
char a1=1,a2=2;
int b1=100,b2=300;
float c1=5.1,c2=6.8;
DA n1,n2;
n1.c=a1,n2.c=a2;
char a3=fun2(n1,n2,1).c;
n1.i=b1,n2.i=b2;
int b3=fun2(n1,n2,2).i;
n1.f=c1,n2.f=c2;
float c3=fun2(n1,n2,3).f;
printf("a3=%c b3=%d c3=%.2f ",a3,b3,c3);
}
DA fun2(DA n1,DA n2,int nType)//nType=1:char類型。nType=2:int類型。nType=3:float類型。
{
DA n3;
switch(nType)
{
case 1:n3.c=n1.c+n2.c;break;
case 2:n3.i=n1.i+n2.i;break;
case 3:n3.f=n1.f+n2.f;break;
}
return n3;
}
H. 在c語言中主函數如何調用子函數
#include <stdio.h>
#include <stdlib.h>
int test1(int a)
{
printf("a=%d\n",a);
return 0
}
int main()
{
int a=1;
test1(a); /*這樣調用即可,使用函數名再加上參數就OK*/
return 0;
}
I. C語言里子函數可以調用子函數嗎
可以的。
C語言規定,任意函數均可以嵌套調用。所以子函數可以調用其它子函數,也可以調用自身。
如
intfunc(inta)
{
if(a==0)return0;
returnfunc(a-1)+a;
}
這樣調用自身的稱為遞歸調用。
又如:
intfa(inta)
{
returna*a;
}
intfb(inta)
{
returnfa(a)+fa(a);
}
這就是不同函數調用的例子。
J. c語言編寫中,兩個文件中,主函數如何調用子函數
寫一個頭文件命名為max.h
#ifndef MAX_H
#define MAX_H
void max(void);
#endif
然後主函數的文件包含max.h頭文件
#include <stdio.h>
#include "max.h"
int main(void) {
max();
return 0;
}
子函數文件也要包含max.h
#include <stdio.h>
#include "max.h"
void max(void) {
printf("世界,你好!\n");
}