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
由于指针数组均存放字符串,所需的圆半径及背景 色彩通过atoi()函数转换为整型。 通过带参数的main()函数,我们可以为自己的程序设置口令,在运行程序的命令行中给出所需的口令,正确则继续,否则退出。
程序图形输出如图6-17所示。 [例6-30]将上述程序作修改,在程序的入口处添置密码,若给定密码正确,则显示图 形。
#include
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 你的习惯是正确的,编程时会发现你永远不可能知道一个项目有多少个函数或者类,所以代码先写main,再写类,但是你显然没有声明。当类在前面时,main在调用它的时候,此类已存在,故有了前面的定义,main中不再需要声明,但是main在前面的时候,就需要先声明了,因为调用在定义的前面。 main() { class a; ````` ```` } class a { public: ````` private: `````` }但是请注意,main无法直接调类中的函数,因为main认不到·····这里主要用于表示friend等关系才会这么用 所以,建议保存为.h文件(头文件),但类假如太小就显得麻烦了······ import java.io.*;//输入输出控制包class Maopao{ public static int[] maopao(int[] data){ int temp; for(int i=0;i main函数是一个程序的入口,也是出口,main函数其实就是类里的一个方法,方法只能在类里声明了,所以maion函数必须声明在一个类里,一个程序里只有一个main函数,因为类与类之间是相与调用的。一个程序从开始运行就会先找main函数,然后再一步一步的执行,如果有多个main那么程序就会报错,因为他不知道该从那个门口(main函数)进,然而类为什么可以有多个呢,你还记的JAVA的三大基本特征么,即封装,继承,多态。而封装就是我们所说的类,他是把所有相同的属性,方法归纳到一起,即组成一个类。这样给你打个比方吧 main函数所在的一个类就相当于一个城市,而main函数就是城市的一个入口,并且只有一个入口,也可是出口,而城市中又有许多小区,我们叫他为类吧,而小区里的房子又基本相同,这也就验证了我们把同一类物品归为一类,即封装在一个类里,而每个小区又不同,这又验证了每一个类的实现功能 是不同的,而类与类这间的调用则是用NEW关键字,这个你应该会吧,继承,多态我就不用说了 main与类没有多关系,也就是类与方法的关系,说了这么多,希望对你有帮助啊 呵呵! main方法定义如下: public static void main(String[] args){…} 关键字的作用: (1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。 (2)static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。 (3)void关键字表明main()的返回值是无类型。 (4)参数String[] args,作用是为程序使用者在命令行状态下与程序交互。 main函数,又称主函数,是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式.有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。 在C语言当中,一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main() 函数”,也就是“主函数”。比如有个“做菜”程序,那么“ 做菜 ”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。 main函数在程序中大多数是必须存在的,但是依然有例外情况,比如windows编程中可以编写一个动态链接库(dll)模块,这是其他windows程序可以使用的代码。由于DLL模块不是独立的程序,因此不需要main函数。再比如,用于专业环境的程序-----如机器人中的控制芯片--可能不需要main函数。 package cn.willsoftware.test; import java.util.ArrayList; public class Student { private static int num;//学号 private static String name;//姓名 private static int classNum;//班号 private static int course;//课程号 private static int score;//成绩 private static int result;//成绩总分 public static void main(String[] args){ ArrayList list1=new ArrayList();//假设list1是学生A list1.add(getScore());//增加java课程,可以循环几次,多增加一些 list1.add(getScore());//增加java课程,可以循环几次,多增加一些 for(int i=0;i 转载请注明出处育才学习网 » java中main函数怎么写5. C++里main函数写在类的上面应该怎么做
java的main函数怎么写
1. JAVA冒泡法的main函数怎么写
2. Java中main函数
3. java中,main方法怎么写
4. 解析java中main函数为什么是这样写
5. JAVA 最基础的编程 main函数的编写
育才学习网