重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在C语言中主函数调用子函数,子函数被主函数调用,这就是它们之间的联系。编写函数主要有以下步骤,首先对函数进行定义,语法格式为:
站在用户的角度思考问题,与客户深入沟通,找到寿宁网站设计与寿宁网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站制作、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟空间、企业邮箱。业务覆盖寿宁地区。
类型说明符 函数名 (含类型说明的形式参数表)
{
语句序列
}
形式参数的作用是实现主函数和被调函数之间的联系。通常将函数所处理的数据、影响函数功能的因素或函数处理的结果作为形参。
然后还要确定函数的返回值及类型,格式为:
return 表达式;
这个语句的另一个作用是结束当前函数的执行。一个函数可以不将任何值返回主函数,此时它的类型标识符为void,可以不写return语句,也可以写一个不带表达式的return;语句。
扩展资料
C语言编程书写规则:
1、一个说明或一个语句占一行。
2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
参考资料来源:《C++语言程序设计(第4版)》郑莉 董源 何江舟 编著 清华大学出版社
第三章 函数 3.1 函数的定义与使用
参考资料来源:百度百科--c语言
int main()
{
Sqlist sqlist;//定义一个链表
int n;//存储要插入到链表中的元素
printf("Input a number:");
scanf("%d",n);
Insert(sqlist,0,n);//调用插入函数Insert(),由于是第一次插入,位置参数x可以设为0
//根据需要,可以添加对应的代码,实现相应功能。
return 0;
}
如果是初学者,没必要从数据结构开始,可以先看一些C的基础知识,先从只有main()函数的简单函数入手,有一定的积累后,这些函数调用、复杂的实现自然而然就会了。贵在坚持……
#include "stdio.h"#include "conio.h"#include "stdlib.h"#include "string.h"#define MAXSTUDENT (1024)#define CheckData()\{\if(!studentNum)\{\printf("没有学生数据,按任意键返回……\n");\getch();\return;\}\}\int studentNum = 0;typedef struct Student{int id;int cScore;int mathScore;}Student;void ClearStudent(Student* student){memset((void*)student,0,sizeof(*student));}void ShowMainMenu(){system("cls");printf("1.增加记录\n2.计算每个学生的总成绩\n3.计算每门课程的平均成绩\n4.按座号查询学生的成绩\n5.按总分排名\n6.输出前n名的学生的成绩\n7.修改成绩\n0.退出\n");}void ShowCountScore(const Student* student){system("cls");CheckData();for(int i = 0;i studentNum;i++)printf("学生%04d的总成绩:%d\n",(student+i)-id,(student+i)-cScore+(student+i)-mathScore);printf("\n按任意键继续……");getch();}void ShowClassAvg(const Student* student){system("cls");CheckData();double sumc = 0;double summath = 0;for(int i = 0;i studentNum;i++){sumc += (student+i)-cScore;summath += (student+i)-mathScore;}printf("C语言平均成绩为:%lf\n",sumc/studentNum);printf("数学平均成绩为:%lf\n",summath/studentNum);printf("\n按任意键继续……");getch();}void AddStudent(Student* student){system("cls");if(studentNum == MAXSTUDENT){printf("人数已满,按任意键返回……\n");getch();}printf("分别录入座号、C语言成绩、数学成绩:\n");int id = 0;int cScore = 0;int mathScore = 0;scanf("%d%d%d",id,cScore,mathScore);for(int i = 0 ;i studentNum;i++)if((student+i)-id == id){printf("座号重复,按任意键返回……\n");getch();return;}(student+studentNum)-id = id;(student+studentNum)-cScore = cScore;(student+studentNum)-mathScore = mathScore;studentNum++;}void SelectFromID(const Student* student){system("cls");CheckData();printf("输入查询ID:\n");int id = 0;scanf("%d",id);printf("查询结果:\n");for(int i = 0;istudentNum;i++)if(id == (student+i)-id){printf("C语言成绩为:%d\n数学成绩为:%d\n",(student+i)-cScore,(student+i)-mathScore);break;}printf("\n按任意键继续……");getch();}void SortForCount(Student* student){system("cls");CheckData();for(int i = 0;i studentNum;i++){for(int j = studentNum -1;j i;j--)if(((student+j)-cScore+(student+j)-mathScore) ((student+j-1)-cScore+(student+j-1)-mathScore)){Student stu;stu = *(student+j);*(student+j) = *(student+j-1);*(student+j-1) = stu;}}}void SortForN(Student* student,int n){SortForCount(student);if(!studentNum)return;n = nstudentNum?studentNum:n;for(int i = 0;i n;i++)printf("第%d名:\nID:%d\nC语言成绩为:%d\n数学成绩为:%d\n总分为:%d\n\n",i+1,(student+i)-id,(student+i)-cScore,(student+i)-mathScore,(student+i)-cScore+(student+i)-mathScore);printf("\n按任意键继续……");getch();}void UpdateScore(Student* student){system("cls");CheckData();printf("输入修改ID:\n");int id = 0;scanf("%d",id);int i = 0;for(;istudentNum;i++)if(id == (student+i)-id)break;if(i == studentNum)printf("\n查无此人,按任意键继续……");else{printf("输入欲修改的C语言成绩、数学成绩:\n");int cScore = 0;int mathScore = 0;scanf("%d%d",cScore,mathScore);(student+i)-cScore=cScore;(student+i)-mathScore = mathScore;printf("\n按任意键继续……");}getch();}void RunStudent(Student* student){while(1){ShowMainMenu();char chGet = getch();switch(chGet){case '1':AddStudent(student);break;case '2':ShowCountScore(student);break;case '3':ShowClassAvg(student);break;case '4':SelectFromID(student);break;case '5':SortForCount(student);for(int i =0;istudentNum;i++)printf("第%d名:\nID:%d\nC语言成绩为:%d\n数学成绩为:%d\n总分为:%d\n\n",i+1,(student+i)-id,(student+i)-cScore,(student+i)-mathScore,(student+i)-cScore+(student+i)-mathScore);printf("\n按任意键继续……");getch();break;case '6':{int n = 0;printf("输入N:\n");scanf("%d",n);SortForN(student,n);}break;case '7':UpdateScore(student);break;case '0':return;default:break;}}}int main(){Student* allStudent = (Student*)malloc(MAXSTUDENT*sizeof(Student));memset((void*)allStudent,0,MAXSTUDENT*sizeof(Student));RunStudent(allStudent);return 0;}
main函数是操作系统调用的入口,前面的int void 是返回类型,返回给操作系统。
int 是整型 void 是无返回值。
你说的main()写法是编译器会自动帮你补充int 或void的,有的编译器不支持。
这是小问题,看情况试试就可以知道了,。