main(),在c語(yǔ)言中稱之為“主函數(shù)”,一個(gè)c程序有且僅有一個(gè)main函數(shù),任何一個(gè)c程序總是從main函數(shù)開(kāi)始執(zhí)行,main函數(shù)后面的一對(duì)圓括號(hào)不能省略。
成都創(chuàng)新互聯(lián)公司,專注為中小企業(yè)提供官網(wǎng)建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站制作、響應(yīng)式網(wǎng)站設(shè)計(jì)、展示型做網(wǎng)站、成都網(wǎng)站制作等服務(wù),幫助中小企業(yè)通過(guò)網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷(xiāo)推廣問(wèn)題。
具體形式如下:
main()
{ ? }
被大括號(hào){ }括起來(lái)的內(nèi)容稱為main函數(shù)的函數(shù)體,這部分內(nèi)容就是計(jì)算機(jī)要執(zhí)行的內(nèi)容。
在{ ?}里面每一句話后面都有一個(gè)分號(hào)(;),在c語(yǔ)言中,我們把以一個(gè)分號(hào)結(jié)尾的一句話叫做一個(gè)c語(yǔ)言的語(yǔ)句,分號(hào)是語(yǔ)句結(jié)束的標(biāo)志。
擴(kuò)展資料:
函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語(yǔ)句。每個(gè) C 程序都至少有一個(gè)函數(shù),即主函數(shù)?main()?,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù)。
您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來(lái)決定的,但在邏輯上,劃分通常是根據(jù)每個(gè)函數(shù)執(zhí)行一個(gè)特定的任務(wù)來(lái)進(jìn)行的。
函數(shù)聲明告訴編譯器函數(shù)的名稱、返回類(lèi)型和參數(shù)。函數(shù)定義提供了函數(shù)的實(shí)際主體。
C 標(biāo)準(zhǔn)庫(kù)提供了大量的程序可以調(diào)用的內(nèi)置函數(shù)。例如,函數(shù)?strcat()?用來(lái)連接兩個(gè)字符串,函數(shù)?memcpy()?用來(lái)復(fù)制內(nèi)存到另一個(gè)位置。
函數(shù)還有很多叫法,比如方法、子例程或程序,等等。
參考資料來(lái)源:百度百科-C語(yǔ)言函數(shù)
#includestdio.h
#define n 6
#define e 8
void CREATGRAPH();
typedef char vextype;
typedef float adjtype;
typedef struct{
vextype vexs[n];
adjtype arcs[n][n];
}graph;
int main()
{
CREATGRAPH();
printf("創(chuàng)建成功!\n");
}
void CREATGRAPH()
{
graph *ga;
int i,j,k;
float w;
for(i=0;in;i++)
ga-vexs[i]=getchar();
for(i=0;in;i++)
for(j=0;jn;j++)
ga-arcs[i][j]=0;
for(k=0;ke;k++)
{
scanf("%d%d%f",i,j,w);
ga-arcs[i][j]=w;
ga-arcs[j][i]=w;
}
printf("創(chuàng)建成功!\n");
}
沒(méi)寫(xiě)完,,自己加加吧!
C語(yǔ)言,C++,怎么寫(xiě)主函數(shù)
主函數(shù)的作用是程序的入口。就是說(shuō)只要程序一開(kāi)始,第一句執(zhí)行的就是主函數(shù)中的第一條語(yǔ)句。
編寫(xiě)規(guī)律:主函數(shù)一般是調(diào)用函數(shù)和簡(jiǎn)單的邏輯判斷,代碼長(zhǎng)度不宜超過(guò)80行。
技巧:將功能盡量整合到一個(gè)子函數(shù),采用調(diào)用。例如,長(zhǎng)方形體積是一個(gè)子函數(shù)一樣。
舉例如下:
#include
double V(double a, double b, double c); 聲明子函數(shù)
void main() 主函數(shù)
{double a,b,c; 長(zhǎng) 寬 高
double v;
scanf("%lf%lf%lf",a,b,c); 輸入長(zhǎng) 寬 高
v = V(a,b,c); /撫;體積子函數(shù)
printf("%lf",v);
}
double V(double a, double b, double c)
{
double v;
v = a*b*c;
return v; 返回給主函數(shù)的值
}
c語(yǔ)言中,標(biāo)準(zhǔn)main函數(shù)的書(shū)寫(xiě)規(guī)范是什么?
那是因?yàn)镃語(yǔ)言剛剛出來(lái)的時(shí)候標(biāo)準(zhǔn)還不統(tǒng)一!
最先前是main() 連頭文件都不需要,后來(lái)又出現(xiàn)了需要#include頭文件,再后來(lái)是int main() 這樣的形式就必要要有個(gè)返回值! 這些都是因?yàn)镃語(yǔ)言在不斷改進(jìn),所以各個(gè)版本都有區(qū)別,現(xiàn)在這就在于你公司或自己要求個(gè)標(biāo)準(zhǔn)是哪個(gè)標(biāo)準(zhǔn)了或者是使用的哪個(gè)編譯器,因?yàn)榫幾g器支持的標(biāo)準(zhǔn)也不一樣!
int main(int argc, char* argv[]) 其實(shí)main函數(shù)還有兩個(gè)參數(shù)!
java中,main方法怎么寫(xiě)?
main方法定義如下:
public static void main(String[] args){…}
關(guān)鍵字的作用:
(1)public關(guān)鍵字,這個(gè)好理龔,聲明主函數(shù)為public就是告訴其他的類(lèi)可以訪問(wèn)這個(gè)函數(shù)。
(2)static關(guān)鍵字,告知編譯器main函數(shù)是一個(gè)靜態(tài)函數(shù)。也就是說(shuō)main函數(shù)中的代碼是存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)的,即當(dāng)定義了類(lèi)以后這段代碼就已經(jīng)存在了。如果main()方法沒(méi)有使用static修飾符,那么編譯不會(huì)出錯(cuò),但是如果你試圖執(zhí)行該程序?qū)?huì)報(bào)錯(cuò),提示main()方法不存在。因?yàn)榘琺ain()的類(lèi)并沒(méi)有實(shí)例化(即沒(méi)有這個(gè)類(lèi)的對(duì)象),所以其main()方法也不會(huì)存。而使用static修飾符則表示該方法是靜態(tài)的,不需要實(shí)例化即可使用。
(3)void關(guān)鍵字表明main()的返回值是無(wú)類(lèi)型。
(4)參數(shù)String[] args,作用是為程序使用者在命令行狀態(tài)下與程序交互。
這個(gè)單鏈表的主函數(shù)怎么寫(xiě)?
你要寫(xiě)的主函數(shù)用來(lái)干什么
C語(yǔ)言主函數(shù)寫(xiě)法
main函數(shù)是操作系統(tǒng)調(diào)用的入口,前面的int void 是返回類(lèi)型,返回給操作系統(tǒng)。
int 是整型 void 是無(wú)返回值。
你說(shuō)的main()寫(xiě)法是編譯器會(huì)自動(dòng)幫你補(bǔ)充int 或void的,有的編譯器不支持。
這是小問(wèn)題,看情況試試就可以知道了,。
建立文件a.c,并在主函數(shù)main()中實(shí)現(xiàn)以下語(yǔ)句: 急急,怎么寫(xiě)
#include void main() {int a,b=80;float c;a=b;c=a+1;printf("%d\n%d\n%f",a,b,c);}將上述內(nèi)容存為a.c,并編譯執(zhí)行,就可以了。
執(zhí)行結(jié)果:
友元函數(shù)的主函數(shù)怎么寫(xiě)?
#include
class B
{
public:
void d();
};
class A
{
friend void f();
friend void B::d();
public:
A(int x=0){this-x=x;}
private :
int x;
};
void B::d()成員函數(shù)做為類(lèi)的友元函數(shù)
{
A a;
a.x++;
cout"調(diào)用了成員函數(shù)作為友員函數(shù):a.x="
}
void f()普通函數(shù)做為類(lèi)的友元函數(shù)
{
A a;
a.x++;
cout"調(diào)用普通成員函數(shù)作為友元a.x="
}
void main()
{
B b;
A a;
f();
b.d();
}
數(shù)據(jù)結(jié)構(gòu)主函數(shù)怎么寫(xiě)
/* 串a(chǎn): abcdefghijklmnopqrstuvwxyz 串b: 01234567890123456789 串a(chǎn): abcdefghijklmnopqrstuv012345678901234567 串c: abcdefghijklmnopqrstuvwxyz Press any key to continue */ #include #define MAXLEN 40typedef struct { char ch[MAXLEN]; int len;}SString;void StrInsert(SString *s,int pos,SString t) { int i; if(pos 0 ) pos = 0; if(pos s-len - 1) pos = s-len; if(s-len + t.len = MAXLEN) { 長(zhǎng)度適中 for(i = s-len + t.len - 1;i pos;i--) s-ch[i] = s-ch[i - t.len]; for(i = 0;i t.len;i++) s-ch[i + pos] = t.ch[i]; s-len += t.len; } else if(pos + t.len MAXLEN) { 長(zhǎng)度超限1,從pos后不再有s的內(nèi)容 for(i = pos;i MAXLEN; ++i) s-ch[i] = t.ch[i - pos]; s-len = MAXLEN; } else { 長(zhǎng)度超限2,從pos + t.len后還有s的部分內(nèi)容 for(i = MAXLEN - 1; i = pos + t.len; --i) s-ch[i] = s-ch[i - t.len]; for(i = 0; i t.len; ++i) s-ch[i + pos] = t.ch[i]; s-len = MAXLEN; }} 在s中從pos位置開(kāi)始刪除len個(gè)字符int StrDelete(SString *s,int pos,int len) { int i; if(pos 0 || pos s-len) return 0; if(pos + len s-len) { 刪除s的中間部分 for(i = pos;i pos + len;i++) s-ch[i] = s-ch[i + len]; s-len -= len; } else { len太大 s-len = pos; } return 1;}SString StrCopy(SString *s,SString t) { int i; for(i = 0;i t.len;i++) s-ch[i] = t.ch[i]; s-len = t.len; return *s;}int StrEmpty(SString s) { if(s.len == 0) return 1; return 0;}int Stepare(......
數(shù)據(jù)結(jié)構(gòu)用C語(yǔ)言寫(xiě)的串怎么寫(xiě)主函數(shù)
/*
串a(chǎn):
abcdefghijklmnopqrstuvwxyz
串b:
01234567890123456789
串a(chǎn):
abcdefghijklmnopqrstuv012345678901234567
串c:
abcdefghijklmnopqrstuvwxyz
Press any key to continue
*/
#include #define MAXLEN 40typedef struct {char ch[MAXLEN];int len;}SString;void StrInsert(SString *s,int pos,SString t) {int i;if(pos 0 ) pos = 0;if(pos s-len - 1) pos = s-len;if(s-len + t.len = MAXLEN) { 長(zhǎng)度適中for(i = s-len + t.len - 1;i pos;i--)s-ch[i] = s-ch[i - t.len];for(i = 0;i t.len;i++) s-ch[i + pos] = t.ch[i];s-len += t.len;}else if(pos + t.len MAXLEN) { 長(zhǎng)度超限1,從pos后不再有s的內(nèi)容for(i = pos;i MAXLEN; ++i)s-ch[i] = t.ch[i - pos];s-len = MAXLEN;}else { 長(zhǎng)度超限2,從pos + t.len后還有s的部分內(nèi)容for(i = MAXLEN - 1; i = pos + t.len; --i)s-ch[i] = s-ch[i - t.len];for(i = 0; i t.len; ++i)s-ch[i + pos] = t.ch[i];s-len = MAXLEN;}} 在s中從pos位置開(kāi)始刪除len個(gè)字符int StrDelete(SString *s,int pos,int len) {int i;if(pos 0 || pos s-len) return 0;if(pos + len s-len) { 刪除s的中間部分for(i = pos;i pos + len;i++)s-ch[i] = s-ch[i + len];s-len -= len;}else { len太大s-len = pos;}return 1;}SString StrCopy(SString *s,SString t) {int i;for(i = 0;i t.len;i++) s-ch[i] = t.ch[i];s-len = t.len;return *s;}int StrEmpty(SString s) {if(s.len == 0) return 1;return 0;}int S......
線性表的主函數(shù)要怎么寫(xiě)。 幫幫忙進(jìn)來(lái)看看。。。 10分
/*
請(qǐng)輸入待建立的表長(zhǎng) : 5
請(qǐng)輸入5個(gè)元素用空格分開(kāi) : 56 54 34 12 76
成功建立表!
插入元素10。
56 10 54 34 12 76
刪除第3個(gè)元素。
56 10 34 12 76
Press any key to continue
*/
#include
using namespace std;
#define MaxSize 100
typedef int datatype;
typedef struct {
datatype data[MaxSize];
int last;
}SeqList;
void Init_SeqList(SeqList*L) {
int i;
cout "請(qǐng)輸入待建立的表長(zhǎng) : ";
cin L-last;
cout "請(qǐng)輸入" L-last "個(gè)元素用空格分開(kāi) : ";
for(i = 0;i L-last;i++) {
cin L-data[i];
}
cout "\n成功建立表!\n";
}
int Insert_SeqList(SeqList *L,int i,datatype x) {
int j;
if(L-last == MaxSize - 1) {
cout "表滿!\n";
return -1;
}
if((i 1) || (i L-last + 2)) {
cout "位置錯(cuò)!\n";
return 0;
}
for(j = L-last;j = i - 1;j--)L-data[j + 1] = L-data[j];
L-data[i - 1] = x;
L-last++;
return 1;
}
int Delete_SeqList(SeqList *L,int i) {
int j;
if((i 1) || (i L-last + 1)) {
cout "不存在第i個(gè)元素。\n";
return 0;
}
for(j = i;j L-last;j++) L-data[j - 1] = L-data[j];
L-last--;
return 1;
}
int Locate_SeqList(SeqList *L,datatype x) {
int i = 0;
while((i L-last) (L-data[i] != x)) i++;
if(i = L-last) return -1;
else return 0;
}
void Display_SeqList(SeqList *L) {
if(L == NULL) cout l埂; "表為空,不能輸出。......
//圖的遍歷算法程序
//圖的遍歷是指按某條搜索路徑訪問(wèn)圖中每個(gè)結(jié)點(diǎn),使得每個(gè)結(jié)點(diǎn)均被訪問(wèn)一次,而且僅被訪問(wèn)一次。圖的遍歷有深度遍歷算法和廣度遍歷算法,程序如下:
#include iostream
//#include malloc.h
#define INFINITY 32767
#define MAX_VEX 20 //最大頂點(diǎn)個(gè)數(shù)
#define QUEUE_SIZE (MAX_VEX+1) //隊(duì)列長(zhǎng)度
using namespace std;
bool *visited; //訪問(wèn)標(biāo)志數(shù)組
//圖的鄰接矩陣存儲(chǔ)結(jié)構(gòu)
typedef struct{
char *vexs; //頂點(diǎn)向量
int arcs[MAX_VEX][MAX_VEX]; //鄰接矩陣
int vexnum,arcnum; //圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù)
}Graph;
//隊(duì)列類(lèi)
class Queue{
public:
void InitQueue(){
base=(int *)malloc(QUEUE_SIZE*sizeof(int));
front=rear=0;
}
void EnQueue(int e){
base[rear]=e;
rear=(rear+1)%QUEUE_SIZE;
}
void DeQueue(int e){
e=base[front];
front=(front+1)%QUEUE_SIZE;
}
public:
int *base;
int front;
int rear;
};
//圖G中查找元素c的位置
int Locate(Graph G,char c){
for(int i=0;iG.vexnum;i++)
if(G.vexs[i]==c) return i;
return -1;
}
//創(chuàng)建無(wú)向網(wǎng)
void CreateUDN(Graph G){
int i,j,w,s1,s2;
char a,b,temp;
printf("輸入頂點(diǎn)數(shù)和弧數(shù):");
scanf("%d%d",G.vexnum,G.arcnum);
temp=getchar(); //接收回車(chē)
G.vexs=(char *)malloc(G.vexnum*sizeof(char)); //分配頂點(diǎn)數(shù)目
printf("輸入%d個(gè)頂點(diǎn).\n",G.vexnum);
for(i=0;iG.vexnum;i++){ //初始化頂點(diǎn)
printf("輸入頂點(diǎn)%d:",i);
scanf("%c",G.vexs[i]);
temp=getchar(); //接收回車(chē)
}
for(i=0;iG.vexnum;i++) //初始化鄰接矩陣
for(j=0;jG.vexnum;j++)
G.arcs[i][j]=INFINITY;
printf("輸入%d條弧.\n",G.arcnum);
for(i=0;iG.arcnum;i++){ //初始化弧
printf("輸入弧%d:",i);
scanf("%c %c %d",a,b,w); //輸入一條邊依附的頂點(diǎn)和權(quán)值
temp=getchar(); //接收回車(chē)
s1=Locate(G,a);
s2=Locate(G,b);
G.arcs[s1][s2]=G.arcs[s2][s1]=w;
}
}
//圖G中頂點(diǎn)k的第一個(gè)鄰接頂點(diǎn)
int FirstVex(Graph G,int k){
if(k=0 kG.vexnum){ //k合理
for(int i=0;iG.vexnum;i++)
if(G.arcs[k][i]!=INFINITY) return i;
}
return -1;
}
//圖G中頂點(diǎn)i的第j個(gè)鄰接頂點(diǎn)的下一個(gè)鄰接頂點(diǎn)
int NextVex(Graph G,int i,int j){
if(i=0 iG.vexnum j=0 jG.vexnum){ //i,j合理
for(int k=j+1;kG.vexnum;k++)
if(G.arcs[i][k]!=INFINITY) return k;
}
return -1;
}
//深度優(yōu)先遍歷
void DFS(Graph G,int k){
int i;
if(k==-1){ //第一次執(zhí)行DFS時(shí),k為-1
for(i=0;iG.vexnum;i++)
if(!visited[i]) DFS(G,i); //對(duì)尚未訪問(wèn)的頂點(diǎn)調(diào)用DFS
}
else{
visited[k]=true;
printf("%c ",G.vexs[k]); //訪問(wèn)第k個(gè)頂點(diǎn)
for(i=FirstVex(G,k);i=0;i=NextVex(G,k,i))
if(!visited[i]) DFS(G,i); //對(duì)k的尚未訪問(wèn)的鄰接頂點(diǎn)i遞歸調(diào)用DFS
}
}
//廣度優(yōu)先遍歷
void BFS(Graph G){
int k;
Queue Q; //輔助隊(duì)列Q
Q.InitQueue();
for(int i=0;iG.vexnum;i++)
if(!visited[i]){ //i尚未訪問(wèn)
visited[i]=true;
printf("%c ",G.vexs[i]);
Q.EnQueue(i); //i入列
while(Q.front!=Q.rear){
Q.DeQueue(k); //隊(duì)頭元素出列并置為k
for(int w=FirstVex(G,k);w=0;w=NextVex(G,k,w))
if(!visited[w]){ //w為k的尚未訪問(wèn)的鄰接頂點(diǎn)
visited[w]=true;
printf("%c ",G.vexs[w]);
Q.EnQueue(w);
}
}
}
}
//主函數(shù)
void main(){
int i;
Graph G;
CreateUDN(G);
visited=(bool *)malloc(G.vexnum*sizeof(bool));
printf("\n廣度優(yōu)先遍歷: ");
for(i=0;iG.vexnum;i++)
visited[i]=false;
DFS(G,-1);
printf("\n深度優(yōu)先遍歷: ");
for(i=0;iG.vexnum;i++)
visited[i]=false;
BFS(G);
printf("\n程序結(jié)束.\n");
}
輸出結(jié)果為(紅色為鍵盤(pán)輸入的數(shù)據(jù),權(quán)值都置為1):
輸入頂點(diǎn)數(shù)和弧數(shù):8 9
輸入8個(gè)頂點(diǎn).
輸入頂點(diǎn)0:a
輸入頂點(diǎn)1:b
輸入頂點(diǎn)2:c
輸入頂點(diǎn)3:d
輸入頂點(diǎn)4:e
輸入頂點(diǎn)5:f
輸入頂點(diǎn)6:g
輸入頂點(diǎn)7:h
輸入9條弧.
輸入弧0:a b 1
輸入弧1:b d 1
輸入弧2:b e 1
輸入弧3:d h 1
輸入弧4:e h 1
輸入弧5:a c 1
輸入弧6:c f 1
輸入弧7:c g 1
輸入弧8:f g 1
廣度優(yōu)先遍歷: a b d h e c f g
深度優(yōu)先遍歷: a b c d e f g h
程序結(jié)束.
已經(jīng)在vc++內(nèi)運(yùn)行通過(guò),這個(gè)程序已經(jīng)達(dá)到要求了呀~