06函数

本文介绍了C语言中函数的基本概念及使用方法,并通过多个实例展示了如何利用函数进行数组排序、字符串操作、日期计算以及学生信息处理等常见任务。

 函数 是具有特定功能的代码段,也就是一连串语句组合在一起,实现了某一功能,我们为它们起了一个名字来替代这些语句

void hello(void) //无参数 无返回值

{

    printf("Hello,Lanou");

}

void peopleCount(void)//无参数 有返回值

{

   return 3;

}

int max(int a ,int b) //有参数 无返回值

{

   printf("number is %d",x);

}

 

C语⾔言不允许函数嵌套定义,但是允许函数嵌套调⽤用。! 注意避免嵌套定义。 

//    1、(**)一维浮点型数组的冒泡排序函数

   float array1[]={1.3, 5.7, 2.5, 5.6, 6.6};

    array(array1, 5);

//    2、(***)编写实现 strlen 同功能的函数 stringLength。

    char array[]="iphone1";

    int length = 0;

   length = stringLength(array);

    printf("length:%d \n",length);

//    3、(***)编写实现 strcpy 同功能的函数 stringCopy。

   char string1[10]="iphone2";

   char string2[10]="";

    stringCopy(string1, string2);

//    4、(***)编写实现 strcat 同功能的函数 stringCatch。

    stringCatch(array, string1, 8);

//    5、(***)编写实现 strcmp 同功能的函数 stringCompare。

    char a[10]="mac";

    char b[10]="macd";

   int num= stringCompare(a,b);

    printf("%d\n",num);

 

 1     
 2 //    1. (**)定义一个结构体变量(包括年、月、日),计算该日在本年中为第
 3 //    几天?(注意考虑闰年问题),要求写一个函数 days,实现上面的计算。 由主函数将年月日传递给 days 函数,计算后将日子传递回主函数输出。
 4    Year myYear ={0};
 5     days(myYear);
 6 
 7 /定义结构体变量包括:年 月 日
 8 typedef struct{
 9     int year;
10     int mouth;
11     int date;
12 } Year;
13 
14 void days(Year year);
16 void days(Year year)
17 {
18     printf("请输入年月日:");
19     scanf("%d %d %d", &year.year,&year.mouth ,&year.date);
20     int sumday = 0;
21     int mouth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30,31};
22     if (!(year.mouth % 400) || !((year.mouth % 4) && year.mouth %100)) {
23         mouth[1] = 29; //判断闰年
24     }
25     for (int i = 0; i < year.mouth - 1; i++) {
26         sumday +=mouth[i]; //计算前几个月的天数
27     }
28     sumday +=year.date; //总天数,即前几个月的天数加上本月天数
29     printf("%d年%d月%d日是%d年的第%d天",year.year, year.mouth,year.date,year.year,sumday);
30 }

  

 

 1 /    2. (***)某班有 5 个学生,三门课。分别编写 3 个函数实现以下要求:
 2 //    (1) 求各门课的平均分;
 3 //    (2) 找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;
 4 //    (3) 找出三门课平均成绩在 85-90 分的学生,并输出其学号和姓名
 5     Student stu[]={
 6         {"zhangsan", 111, 50, 56, 80, 90},
 7         {"lisi", 112, 89, 88,84,0},
 8         {"panny",122, 78, 35, 65,90},
 9         {"wang",123, 56, 76, 34, 32},
10         {"wanghong", 124, 43, 23, 53, 64}
11     };
12     int count = sizeof(stu)/sizeof(stu[0]);
13     averageScore(stu, count);
14     printfFailStudent(stu, count);
15     printfWellStudent(stu, count);
16 
17 // (1) 求各门课的平均分;
18 void averageScore(Student stu[],int count);
19 //找出两门不及格学生并输出他们的学号和不及格科目的成绩
20 void printfFailStudent(Student stu[],int count);
21 //实现找出平均分在[85,90]中的学生并输出其姓名及学号
22 
23 //求平均分
24 void averageScore(Student stu[],int count)
25 {
26     for (int i = 0; i < count ; i++) {
27         stu[i].average = (stu[i].math+stu[i].chinese+stu[i].English)/3;
28         printf("%s的平均分是:%.2f\n",stu[i].name,stu[i].average);
29     }
30 }
31 //找出两门不及格学生并输出他们的学号和不及格科目的成绩
32 void printfFailStudent(Student stu[],int count)
33 {
34     for (int i = 0; i < count; i++) {
35         int flag = 0;
36         stu[i].math < 60 ? flag++ : flag;//如果成绩小于60,flag 自增,即不及格科数加一
37         stu[i].chinese < 60 ? flag++ :flag;
38         stu[i].English < 60 ? flag++ :flag;
39         if (flag >= 2) {
40             printf("\n%s 有%d 门不及格分别是: ",stu[i].name,flag);
41        
42         if (stu[i].math < 60) {
43             printf("math = %d",stu[i].math);
44         }
45         if (stu[i].chinese < 60) {
46             printf("chinese = %d",stu[i].chinese);
47         }
48         if (stu[i].English < 60) {
49             printf("English =%d ",stu[i].English);
50         }
51     }
52   }
53 }
54 //实现找出平均分在[85,90]中的学生并输出其姓名及学号
55  void printfWellStudent(Student stu[],int count)
56 {
57     for (int i = 0; i < 3; i++) {
58         if (stu[i].average >=85 && stu[i].average <= 90) {
59             printf("\n%s的平均分为%.2f,他的学号是:%d",stu[i].name, stu[i].average,stu[i].number);
60         }
61     }
62 }

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/panny/p/4075144.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值