新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
/* 冒泡排序法 */
创新互联-成都网站建设公司,专注成都网站设计、成都做网站、网站营销推广,主机域名,网站空间,网站改版维护有关企业网站制作方案、改版、费用等问题,请联系创新互联。
#include "stdio.h"
#define SIZE 10
void Paixi(int a[]){
int pass,i,hold;
for(pass=0;pass=SIZE-1;pass++) /* pass */
for(i=0;i=SIZE-2;i++) /* one pass */
if(a[i]a[i+1]) /* one comparison */
{
hold=a[i];
a[i]=a[i+1];
a[i+1]=hold;
}
}
void main()
{
int i, a[SIZE]={1,5,2,4,8,6,14,21,30,25};
printf("Data item in original order \n");
for(i=0;i=SIZE-1;i++)
printf("%4d",a[i]);
Paixi(a);
printf("\n Data items in ascending order \n");
for(i=0;i=SIZE-1;i++)
printf("%4d", a[i]);
printf("\n");
}
1:子函数中sum没有初值,应该为
float
sum=0;
2:sum/10的结果为浮点型,你定义一个整型的avg1接收会产生错误,应该定义一个浮点型变量接收值
3:你这里是三个学生,你在函数中不应该除以10,另外函数中的循环取得的sum值是一个学生五门功课的成绩总和,如果要求每一门功课的
平均成绩,你的循环需要修改
4:函数的调用是压栈的过程,你的函数没有返回值所以不可以return
b[5],如果想要返回一个数组你应该在主函数中先定义然后向自定义函数中传入子函数地址,这样就可以保存每门功课的成绩了
希望可以帮到你
你可以返回s数组的首地址,函数可以这么定义:
int* f1(int a[], int n, int k)
{
....//你的代码
return s;
}
max 函数在 main 之后定义,使用时要在 main 中声明,否则调用时找不到函数的位置,或是把 max 函数放在 main 的前面.
#includestdio.h
main()
{
int a,b,c;
/*下面一行为所加内容*/
int max(int x,int y);
scanf("%d,%d",a,b);
c=max(a,b);
printf("max=%d",c);
}
int max(int x,int y)
{
int z;
if (xy) z=x;
else x=y;
return (z);
}
来传送子函数中的数组有多种方法——可以通过函数返回值返回地址传递数组;也可以通过函数输入参数来传递数组;还可以通过全局变量来传递数组。
子函数本身可以直接在作用域中进行调用。
1、通过函数返回值返回地址传递数组。
声明函数时需要声明函数返回值类型为对应数组的地址,此时可以返回数组的地址,结合数组元素的地址关系可以传递整个数组,同时可以根据数组的特性传递多个参数。
2、通过输入参数传递数组。
声明函数时提供空输入参数,调用函数时提供目标数组,即可以通过该数组调用子函数中的数组,该方法也可以用于传递多个参数。
3、通过全局变量来传递数组。
声明全局变量用于存储子函数中的数组,此时可以在全局变量作用域中读取调用子函数的数组。
注意:子函数是C语言模块化编程思想的核心,其方法是通过输入接口和输出接口实现对黑盒的调用,故对其内部数据的输入和调用也需要通过输入接口、输出接口和程序的公共区域实现。
#includestdio.h
#includemath.h
void main()
{ int i;
int fun(int);
for(i=2;i=200;i++)
if(fun(i)) printf("%6d",i);
getch();
}
int fun(int n)
{int i,t;
t=sqrt(n);
for(i=2;i=t;i++)
if(n%i==0) return (0);
return (1);
}