main函数怎么写

1. 简述main函数的作用

[编辑本段]main函数概述 日常生活中,要完成一件复杂的功能,我们总是习惯把“大功能”分解为多个“小功能”以实现。

在C++程序的世界里,“功能”可称呼为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其它代码调用。 一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main 函数”,也就是“主函数”。

比如有个“做菜”程序,那么“做菜”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。

[编辑本段]main函数的参数 C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程 序运行的入口。

其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用 的是有参函数,则参数在调用时传递。 main() { 。

y1=f1(x1,x2); 。 } f1(int a,int b) { 。

. Y2=f2(x3,x4); 。. } f2(int m,int n) { 。

. 。.. } 在前面课程的学习中,对main()函数始终作为主调函数处理,也就是说,允许main()调用 其它函数并传递参数。

事实上,main()函数既可以是无参函数,也可以是有参的函数。对于有 参的形式来说,就需要向其传递参数。

但是其它任何函数均不能调用main()函数。当然也同样 无法向main()函数传递,只能由程序之外传递而来。

这个具体的问题怎样解决呢? 我们先看一下main()函数的带参的形式: main(argc,argv) int argc,char *argv[]; { 。.. } 从函数参数的形式上看,包含一个整型和一个指针数组。

当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由 系统在启动运行时传递参数了。

在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为: 命令参数1参数2。

.参数n¿ 此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。

命令行与main()函数的参数存在如下的关系: 设命令行为:program str1 str2 str3 str4 str5 其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。

数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后 才是参数。

下面用实例来说明带参数的main()函数的正确使用。 [例6-29] 利用图形库函数绘制一个变化的环。

它是把一个半径为R 1的圆周分成n份,然 后以每个等分点为圆心,以R s为半径画n个圆(关于作图的详细理论本教材第9章第1节作了专 门介绍,这里只作简单分析)。利用m a i n ( )函数的带参数形式,我们可以从键盘以命令行的方 式输入R 1和R s及屏幕的背景色。

#include /*包含图形库函数的头文件* / #include #define pi 4.1415926 m a i n ( a r g c , a r g v ) int argc;char *argv[]; /* 定义带参数的m a i n ( ) * / { int x,y,r1,rs,color; double a; int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,"..\\bgi ")启;/动*图形工作方式*/ r1=atoi(argv[1]);/*计算基础圆半径*/ rs=atoi(argv[2]);/*计算同心圆半径*/ color=atoi(argv[3]);/*背景色*/ cleardevice();/*清除图形屏幕*/ setbkcolor(color);/*设置背景色*/ setcolor(4);/*设置图形显示颜色*/ for(a=0;a<=2*pi;a+=pi/18)/*绘制同心圆*/ { x=r1*cos(a)+320; y=r1*sin(a)+240; circle(x,y,rs);/*以圆心坐标为x、y,半径为rs画圆*/ } getch();/*等待按键继续*/ close graph();/*关闭图形工作方式*/ } 若程序名为L6-29.c,经编译、连结生成可执行文件L6-29.exe。在操作系统的环境下运行 程序,命令行方式为: l6-29 40 20 3 则命令行与main()函数的参数有如图6-16所示的关系 图6-16中,argv[0]是程序名,argv[1]是r1的值, argv[2]是rs的值,argv[3]是屏幕的背景色。

由于指针数组均存放字符串,所需的圆半径及背景 色彩通过atoi()函数转换为整型。 通过带参数的main()函数,我们可以为自己的程序设置口令,在运行程序的命令行中给出所需的口令,正确则继续,否则退出。

程序图形输出如图6-17所示。 [例6-30]将上述程序作修改,在程序的入口处添置密码,若给定密码正确,则显示图 形。

#include #include #define pi 4.1415926 m a i n ( a r g c , a r g v ) int argc;char *argv[]; { int x,y,r1,rs,color; double a; int gdriver=DETECT,gmode; if (strcmp(argv[1],"pass")!=0) 设/置* 口令的比较*/ { printf("password error!\n"); e x i t ( 0 ) ; } initgraph(&gdriver,&gmode,"..\\bgi "); r1=atoi(argv[2]); rs=atoi(argv[3]); color=atoi(argv[4]); cleardevice(); setbkcolor(color); setcolor(4); for(a=0;a<=2*pi;a+=pi/18) { x=r1*cos(a)+320; y=r1*sin(。

2. C语言怎么在main函数里写自定义函数,格式是怎么样的

写个程序你看看就知道了,

题目:求两个整数中的大者.

程序如下:

#include"stdio.h"

int main(void)

{

int max(int x,int y); //函数声明

int a b c; //定义变量

scanf(”%d,%d“,&a,&b); //输入两个数

c=max(a,b); //调用max函数。将得到的值赋给c

printf("%d\n",c); //输出c的值

}

int max(int x,int y) //函数定义部分。定义max函数为整型。函数值为整型,形式参数x,y为整型,

{

int z; //max函数的声明部分

if(x>y) z=x;

else z=y;

return(z);

}

后面的那一句语句就是自定义的,是前面需要调用的函数。在c中,不管你把main函数放在前面还是后面都是从main函数开始执行的。

3. 求教二叉树的main函数怎么写合适:

我的能力也有限,学数据结构过的时间有点久了,而且这个程序我读的很吃力,没用过这样子的语言来写呢,刚刚写了个主类可是运行还是有错误,我又不会改,不好意思。

我想要的主类大体是这样写的,你可以参考一下:void main(){ BiTree Tr;//这里定义的东西在这个程序里也不行,本来是想让那个BinTree是个指针的,可是这个程序俺也不大会弄 printf("按前序次序输入,以#表示为空:\n"); CreateBinTree(Tr,T,i);//这个括号里面的内容我也不知该怎么写,程序大体读了读 貌似不大会 printf("\n前序遍历结果为:\n"); PreOrder(Tr);//反正括号里的内容就是你前面写的那个函数括号里相应的 printf("\n中序遍历结果为:\n"); InOrder(Tr); printf("\n后序遍历结果为:\n"); PostOder(Tr); printf("\n层序遍历结果为:\n"); LevelOrder(Tr); printf("\n该二叉树的深度为:\n%d",countHighOfBiTree(Tr)); printf("\n该二叉树的叶子节点个数为:\n"); countNumOfLeaf(Tr); printf("\n该二叉树的所有结点数为:\n"); Count(Tr); printf("\n");}这里是实验课上老师布置给我们的,然后自己写的,语言和你的不大一样 但思路差不多,你可以看看这个的,毕竟我还是学的时候思路比较清晰啦,嘿嘿,貌似~是按前序序列来创建的二叉树,你输入的前序序列一定要是正确的哦~我的这个程序还很低级,错误的它不会提示,不好意思哈,学习不大好,只能帮到这里了#include "stdio.h"#include "conio.h"#include "stdlib.h" #include#include//#include#include#define NULL 0typedef char Elemtype;typedef struct BinNode{Elemtype data;struct BinNode *lchild,*rchild;//左右孩子指针}BinTNode,*BinTree;//按前序构造二叉树链表表示的二叉树序列BinTree CreateBinTree(BinTree &T){char ch;scanf("%c,\n",&ch);if(ch=='#') T=NULL;else{T=(BinNode *)malloc(sizeof(BinNode));T->data=ch;//生成根结点CreateBinTree(T->lchild);//生成左子树CreateBinTree(T->rchild);//生成右子树}//ifreturn T;}//CreateBinTreevoid Visit(char dataa){printf("%c",dataa);}//前序遍历二叉树void PreOrderTraverse(BinTree T){//前序遍历二叉树T的递归算法,Visit是访问数据元素的函数if(T)//二叉树非空{Visit(T->data);//访问根结点PreOrderTraverse(T->lchild);//前序遍历左子树PreOrderTraverse(T->rchild);//前序遍历右子树}//if}//PreOrderTraverse//中序遍历二叉树void InOrderTraverse(BinTree T){//中序遍历二叉树T的递归算法,Visit是访问数据元素的函数if(T)//二叉树非空{InOrderTraverse(T->lchild);//中序遍历左子树Visit(T->data);//访问根结点InOrderTraverse(T->rchild);//中序遍历右子树}//if}//InOrderTraversevoid PostOrderTraverse(BinTree T){//后序遍历二叉树T的递归算法,visit是访问数据元素的函数if(T)//二叉树非空{PostOrderTraverse(T->lchild);//后序遍历左子树PostOrderTraverse(T->rchild);//后序遍历右子树Visit(T->data);//访问根结点}//if}//PostOrderTraverse//求二叉树的深度int Depth(BinTree T){int DepthLeft,DepthRight,depthval;if(!T)return 0;else{DepthLeft=Depth(T->lchild);DepthRight=Depth(T->rchild);depthval=1+(DepthLeft>DepthRight?DepthLeft:DepthRight);return depthval;}//if}//Depthvoid CountLeaf(BinTree T,int &count0,int &count2){//统计二叉树中的叶子节点个数if(T){if((!T->lchild)&&(!T->rchild))count0++;CountLeaf(T->lchild,count0,count2);CountLeaf(T->rchild,count0,count2);}count2=count0-1;}void Countduone(BinTree T,int &count1){//统计二叉树中度为1的结点个数if(T){if(((!T->lchild)&&(T->rchild))||((T->lchild)&&(!T->rchild)))count1++;Countduone(T->lchild,count1);Countduone(T->rchild,count1);}}int ZongNode(int &a,int &b,int c){return (a+b+c);}void main(){BinTree Tr;int count0,count1,count2;int jie;count0=0;count1=0;count2=0;printf("按前序次序输入,以#表示为空:\n");CreateBinTree(Tr);printf("\n前序遍历结果为:\n");PreOrderTraverse(Tr);printf("\n中序遍历结果为:\n");InOrderTraverse(Tr);printf("\n后序遍历结果为:\n");PostOrderTraverse(Tr);printf("\n该二叉树的深度为:\n%d",Depth(Tr));printf("\n该二叉树的叶子节点个数为:\n");CountLeaf(Tr,count0,count2);printf("%d",count0);printf("\n该二叉树的所有结点数为:\n");//CountLeaf(Tr,count0,count2);Countduone(Tr,count1);jie=ZongNode(count1,count2,count0);printf("%d",jie);printf("\n");}。

4. 在main函数里如何写,才能用此函数

#include void fun(int x,int pp[],int *n){ int i=1,j=0,k=0,*t=pp; for(i=0;i<=x;i++) if(i%2!=0){ t[j] = i; j++; } for(i=0;i

5. C++里main函数写在类的上面应该怎么做

你的习惯是正确的,编程时会发现你永远不可能知道一个项目有多少个函数或者类,所以代码先写main,再写类,但是你显然没有声明。当类在前面时,main在调用它的时候,此类已存在,故有了前面的定义,main中不再需要声明,但是main在前面的时候,就需要先声明了,因为调用在定义的前面。

main()

{

class a;

`````

````

}

class a

{

public:

`````

private:

``````

}但是请注意,main无法直接调类中的函数,因为main认不到·····这里主要用于表示friend等关系才会这么用

所以,建议保存为.h文件(头文件),但类假如太小就显得麻烦了······

main函数怎么写

转载请注明出处育才学习网 » main函数怎么写

知识

日语辞职信怎么写

阅读(156)

本文主要为您介绍日语辞职信怎么写,内容包括日文的辞职信怎么写呢,求日语辞职信,求日语辞职信。日语”辞职说明“:辞任の说明日语:“我做到今天为止,感谢大家多年来对我的照顾,祝福大家”翻译如下:私は今日までにして、皆さんの私に対する

知识

隶书冯字怎么写

阅读(457)

本文主要为您介绍隶书冯字怎么写,内容包括冯字在古代是怎样写的,冯字的草书和行书的写法,冯有几种写法。“冯”字在古代貌似无甲骨文,最古老的形式也是篆书吧。以下是“冯”字在古代的各种写法。“冯”字篆书:

知识

古龙是怎么写小说的

阅读(281)

本文主要为您介绍古龙是怎么写小说的,内容包括古龙为什么那么会写小说,古龙为什么那么会写小说,古龙的武侠小说是怎么写的书中的情节不会纯粹只是想象吧。不是光靠想象力的,作者之所以会写成武侠小说首先要了解最基础的当时的文化与风俗,这样

知识

工作文件怎么写

阅读(209)

本文主要为您介绍工作文件怎么写,内容包括工作简述怎么写,工作证明怎么写,工作流程怎么写。原发布者:520steffi工作概述:负责公司前台信息、资料的收集、传递和管理、考勤、员工出入登记、车辆出入登记工作内容和职责:负责制定

知识

苒的草书怎么写

阅读(210)

本文主要为您介绍苒的草书怎么写,内容包括冉字的草书怎么写/,姣字的草书怎么写,奡的草书怎么写。冉字的草书写法如下:二、释义:逐渐,渐进。常作“冉冉”2、姓3、龟壳的边缘三、冉的部首:冂四、汉字结构:单一结构五、造字法:象形六、相关

知识

假期计划怎么写小学生

阅读(205)

本文主要为您介绍假期计划怎么写小学生,内容包括小学生寒假计划怎么写,小学生的几个寒假计划,小学生四年级假期生活计划怎么写不要表格,要文章。你好,很高兴为你解答。我是今年考上了北京大学,我建议寒假应该抓紧时间学习下快速阅读,我们学校

知识

处罚说明怎么写

阅读(255)

本文主要为您介绍处罚说明怎么写,内容包括如何写免于处罚的情况说明,罚款情况说明怎么写,处罚的罚怎么写。罚款情况说明把发生的情况简单的用报告格式给予说明:情况说明xxx(要报告的单位名称):把为什么会罚款的原因写上,罚款数具、金额特此说明!

知识

行书董字怎么写

阅读(190)

本文主要为您介绍行书董字怎么写,内容包括董字行书怎么写,董这个字怎么写好看,诚心求教“董”字的行书写法。董字的行书写法如下图所示:

知识

车字的行书怎么写

阅读(176)

本文主要为您介绍车字的行书怎么写,内容包括吴玉生行书车字怎么写,车字行书怎么写m.iqi,车字草书怎么写。【笔画数】共七画,分别是:横、竖、横折、横、横、横、竖。车(che,繁体字:车)姓是当今中国姓氏排行第一百九十六位的姓氏,人口较多,约占

知识

大众点评合作内容怎么写

阅读(217)

本文主要为您介绍大众点评合作内容怎么写,内容包括怎么和大众点评网合作,我与大众点评网合作应该怎么写海报出来让别人知道呢,如何写农家菜外卖餐厅公告的内容,我要与大众点评合作做外卖,不。在搜索引擎上搜索到大众点评,点击进入大众点评的

知识

沉字草书怎么写

阅读(198)

本文主要为您介绍沉字草书怎么写,内容包括陈字草书怎么写,陈字草书写法,立字的草书写法。如图(名家手迹29款,点击看大图)<a href="http://pic.wenwen.soso.com/pqpic/wenwenpic

知识

广告策划创意怎么写

阅读(227)

本文主要为您介绍广告策划创意怎么写,内容包括广告策划中的创意计划怎么写,广告创意策划论文怎么写,800字广告策划怎么写才有创意。广告的创意与策划 论文 2006-12-23 15:36:04 什么是广告?从字面儿上来讲,广告就是“广而告之”的意思。 自从

知识

证字草书怎么写

阅读(492)

本文主要为您介绍证字草书怎么写,内容包括正字的草书怎么写,“兴”字的草书怎么写,书用草书怎么写。“书”用草书写法:

知识

大班家长寄语怎么写

阅读(181)

本文主要为您介绍大班家长寄语怎么写,内容包括幼儿园大班家长寄语怎么写,幼儿园大班成长手册家长寄语怎么写,家长寄语怎么写幼儿园大班。亲爱的小朋友、朋友们:你们好!开学了,我们又相会在这美丽的,共同迎接又一个新的开始,幼儿园大班家长寄语。

知识

excel中的if函数怎么写

阅读(205)

本文主要为您介绍excel中的if函数怎么写,内容包括下面这个excel中的IF函数公式怎么写,EXCEL中的IF函数的书写,EXCEL中IF函数怎么写啊,看看我的条件。这个问题我预定了,A1中输入数值=IF(AND(A1>=0,A1<100),A1+1,IF(AND(A1>=100,A1<200),A1

知识

excel中if函数怎么写

阅读(240)

本文主要为您介绍excel中if函数怎么写,内容包括EXCEL中的IF函数的书写,EXCEL中IF函数怎么写啊,看看我的条件,下面这个excel中的IF函数公式怎么写。选中K3单元格,输入以下函数:=IF(F3>=166.66667%,F3*2,IF(F3>=100%,F3*1,IF(F3>=80%,F

知识

matlab怎么写主函数

阅读(255)

本文主要为您介绍matlab怎么写主函数,内容包括matlab主函数怎么写,Matlab中有子函数如何写主函数,matlab中怎样写个函数,在主程序中调用该函数的方法。首先在电脑中打开baimatlab软件。

知识

延时函数怎么写delay

阅读(1197)

本文主要为您介绍延时函数怎么写delay,内容包括c语言延时函数delay,怎么算延时,C语言delay的延时函数怎么写,delay()c语言延迟函数。下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,

知识

箭头函数怎么写

阅读(203)

本文主要为您介绍箭头函数怎么写,内容包括generator用箭头函数怎么写,箭头函数需要写return关键字么,函数表示法中箭头表示什么。我个人觉得,非常好用,主要有一下几点吧:提高开发效率,减少体力耀东使用剪头函数不需要敲完整的 function 关键字,

知识

if函数区间怎么写

阅读(861)

本文主要为您介绍if函数区间怎么写,内容包括Excel中IF函数,区间函数怎么写,IF函数公式日期区间公式怎么写,excelif函数区间怎么用。选中K3单元格,输入以下函数:=IF(F3>=166.66667%,F3*2,IF(F3>=100%,F3*1,IF(F3>=80%,F

知识

delay函数怎么写

阅读(183)

本文主要为您介绍delay函数怎么写,内容包括C语言delay的延时函数怎么写,51单片机delay()函数,delay函数怎么用呢。回答这个问题前提需要搞清楚:1.你的执行文件在那里运行?2.你要延时是否“死等”,还是可以切换到其他任务?---------------

知识

函数表达式怎么写

阅读(222)

本文主要为您介绍函数表达式怎么写,内容包括一共有几种函数函数,并写出函数表达式,一次函数表达式怎么写,一次函数的表达式怎么写。如:1.一次函数的图象过点M(3,2),N(-1,-6)两点.(1)求函数的表达式;(2)画出该函数的图象.解:(1)设函数的表达式为y

[/e:loop]