十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
main(),在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。
成都创新互联公司,专注为中小企业提供官网建设、营销型网站制作、响应式网站设计、展示型做网站、成都网站制作等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
具体形式如下:
main()
{ }
被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。
在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。
扩展资料:
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
函数还有很多叫法,比如方法、子例程或程序,等等。
参考资料来源:百度百科-C语言函数
#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("创建成功!\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("创建成功!\n");
}
没写完,,自己加加吧!
C语言,C++,怎么写主函数
主函数的作用是程序的入口。就是说只要程序一开始,第一句执行的就是主函数中的第一条语句。
编写规律:主函数一般是调用函数和简单的逻辑判断,代码长度不宜超过80行。
技巧:将功能尽量整合到一个子函数,采用调用。例如,长方形体积是一个子函数一样。
举例如下:
#include
double V(double a, double b, double c); 声明子函数
void main() 主函数
{double a,b,c; 长 宽 高
double v;
scanf("%lf%lf%lf",a,b,c); 输入长 宽 高
v = V(a,b,c); /抚;体积子函数
printf("%lf",v);
}
double V(double a, double b, double c)
{
double v;
v = a*b*c;
return v; 返回给主函数的值
}
c语言中,标准main函数的书写规范是什么?
那是因为C语言刚刚出来的时候标准还不统一!
最先前是main() 连头文件都不需要,后来又出现了需要#include头文件,再后来是int main() 这样的形式就必要要有个返回值! 这些都是因为C语言在不断改进,所以各个版本都有区别,现在这就在于你公司或自己要求个标准是哪个标准了或者是使用的哪个编译器,因为编译器支持的标准也不一样!
int main(int argc, char* argv[]) 其实main函数还有两个参数!
java中,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,作用是为程序使用者在命令行状态下与程序交互。
这个单链表的主函数怎么写?
你要写的主函数用来干什么
C语言主函数写法
main函数是操作系统调用的入口,前面的int void 是返回类型,返回给操作系统。
int 是整型 void 是无返回值。
你说的main()写法是编译器会自动帮你补充int 或void的,有的编译器不支持。
这是小问题,看情况试试就可以知道了,。
建立文件a.c,并在主函数main()中实现以下语句: 急急,怎么写
#include void main() {int a,b=80;float c;a=b;c=a+1;printf("%d\n%d\n%f",a,b,c);}将上述内容存为a.c,并编译执行,就可以了。
执行结果:
友元函数的主函数怎么写?
#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()成员函数做为类的友元函数
{
A a;
a.x++;
cout"调用了成员函数作为友员函数:a.x="
}
void f()普通函数做为类的友元函数
{
A a;
a.x++;
cout"调用普通成员函数作为友元a.x="
}
void main()
{
B b;
A a;
f();
b.d();
}
数据结构主函数怎么写
/* 串a: abcdefghijklmnopqrstuvwxyz 串b: 01234567890123456789 串a: 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) { 长度适中 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) { 长度超限1,从pos后不再有s的内容 for(i = pos;i MAXLEN; ++i) s-ch[i] = t.ch[i - pos]; s-len = MAXLEN; } else { 长度超限2,从pos + t.len后还有s的部分内容 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位置开始删除len个字符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(......
数据结构用C语言写的串怎么写主函数
/*
串a:
abcdefghijklmnopqrstuvwxyz
串b:
01234567890123456789
串a:
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) { 长度适中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) { 长度超限1,从pos后不再有s的内容for(i = pos;i MAXLEN; ++i)s-ch[i] = t.ch[i - pos];s-len = MAXLEN;}else { 长度超限2,从pos + t.len后还有s的部分内容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位置开始删除len个字符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......
线性表的主函数要怎么写。 帮帮忙进来看看。。。 10分
/*
请输入待建立的表长 : 5
请输入5个元素用空格分开 : 56 54 34 12 76
成功建立表!
插入元素10。
56 10 54 34 12 76
删除第3个元素。
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 "请输入待建立的表长 : ";
cin L-last;
cout "请输入" L-last "个元素用空格分开 : ";
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 "位置错!\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个元素。\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埂; "表为空,不能输出。......
//图的遍历算法程序
//图的遍历是指按某条搜索路径访问图中每个结点,使得每个结点均被访问一次,而且仅被访问一次。图的遍历有深度遍历算法和广度遍历算法,程序如下:
#include iostream
//#include malloc.h
#define INFINITY 32767
#define MAX_VEX 20 //最大顶点个数
#define QUEUE_SIZE (MAX_VEX+1) //队列长度
using namespace std;
bool *visited; //访问标志数组
//图的邻接矩阵存储结构
typedef struct{
char *vexs; //顶点向量
int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵
int vexnum,arcnum; //图的当前顶点数和弧数
}Graph;
//队列类
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;
}
//创建无向网
void CreateUDN(Graph G){
int i,j,w,s1,s2;
char a,b,temp;
printf("输入顶点数和弧数:");
scanf("%d%d",G.vexnum,G.arcnum);
temp=getchar(); //接收回车
G.vexs=(char *)malloc(G.vexnum*sizeof(char)); //分配顶点数目
printf("输入%d个顶点.\n",G.vexnum);
for(i=0;iG.vexnum;i++){ //初始化顶点
printf("输入顶点%d:",i);
scanf("%c",G.vexs[i]);
temp=getchar(); //接收回车
}
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); //输入一条边依附的顶点和权值
temp=getchar(); //接收回车
s1=Locate(G,a);
s2=Locate(G,b);
G.arcs[s1][s2]=G.arcs[s2][s1]=w;
}
}
//图G中顶点k的第一个邻接顶点
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中顶点i的第j个邻接顶点的下一个邻接顶点
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;
}
//深度优先遍历
void DFS(Graph G,int k){
int i;
if(k==-1){ //第一次执行DFS时,k为-1
for(i=0;iG.vexnum;i++)
if(!visited[i]) DFS(G,i); //对尚未访问的顶点调用DFS
}
else{
visited[k]=true;
printf("%c ",G.vexs[k]); //访问第k个顶点
for(i=FirstVex(G,k);i=0;i=NextVex(G,k,i))
if(!visited[i]) DFS(G,i); //对k的尚未访问的邻接顶点i递归调用DFS
}
}
//广度优先遍历
void BFS(Graph G){
int k;
Queue Q; //辅助队列Q
Q.InitQueue();
for(int i=0;iG.vexnum;i++)
if(!visited[i]){ //i尚未访问
visited[i]=true;
printf("%c ",G.vexs[i]);
Q.EnQueue(i); //i入列
while(Q.front!=Q.rear){
Q.DeQueue(k); //队头元素出列并置为k
for(int w=FirstVex(G,k);w=0;w=NextVex(G,k,w))
if(!visited[w]){ //w为k的尚未访问的邻接顶点
visited[w]=true;
printf("%c ",G.vexs[w]);
Q.EnQueue(w);
}
}
}
}
//主函数
void main(){
int i;
Graph G;
CreateUDN(G);
visited=(bool *)malloc(G.vexnum*sizeof(bool));
printf("\n广度优先遍历: ");
for(i=0;iG.vexnum;i++)
visited[i]=false;
DFS(G,-1);
printf("\n深度优先遍历: ");
for(i=0;iG.vexnum;i++)
visited[i]=false;
BFS(G);
printf("\n程序结束.\n");
}
输出结果为(红色为键盘输入的数据,权值都置为1):
输入顶点数和弧数:8 9
输入8个顶点.
输入顶点0:a
输入顶点1:b
输入顶点2:c
输入顶点3:d
输入顶点4:e
输入顶点5:f
输入顶点6:g
输入顶点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
广度优先遍历: a b d h e c f g
深度优先遍历: a b c d e f g h
程序结束.
已经在vc++内运行通过,这个程序已经达到要求了呀~