十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这两个函数里都有一个 死循环。
我们提供的服务有:成都网站制作、成都网站设计、外贸营销网站建设、微信公众号开发、网站优化、网站认证、丹江口ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的丹江口网站制作公司
i从1开始取值 ,则i=2*i-1恒成立
应该是两个错误:
main函数没有返回值
MA函数中if后应该是条件语句而不是赋值语句
c语言中自定义函数可以放在main函数后面,但需要在前面进行函数定义。 C语言的函数定义的作用域,只限于后面的函数可见。在main函数中用到的其它函数,一种方法是在main函数的前面定义并实现函数,如 //定义并实现foo函数void foo(int *a){ *a++;}int main(void){ int k foo(k);//调用foo函数} 另外一种方法是在main函数后实现函数,但需要在之前定义,如 void foo(int *a);//仅声明foo函数,与函数实现的参数和名称及返回值相同int main(void){ int k foo(k);//调用foo函数}//实现foo函数void foo(int *a){ *a++;}
main函数中下面这一段
void average1(float score[NUM_std][NUM_course]);
void average2(float score[NUM_std][NUM_course]);
void max(float score[NUM_std][NUM_course]);
void fangcha(float score[][NUM_course]);
调用函数时,应该将参数实例化
average1(score);
average2(score);
max(score);
fangcha(score);
其实将自定义函数参数里的float去掉就行。
调用时你的函数switch(int a,int b)
把a[i]的值赋给了a,把a[j]的值赋给了b(数组b相同)
然后函数交换使得
a=a[j]
b=a[i]
所以a[i]跟a[j]的值还是没有交换,换的是a,b的值
你可以把函数修改一下(改用指针参数):
void switch(int *a, int *b){
int t;
t=*a;
*a=*b;
*b=t;
}
调用时:switch(a+i, a+j)
在没有申明的情况下 定义的函数必须放在主函数之前 如果有申明函数定义可以放在主函数下面
#includestdio.h
#define N 20
long flag(long array[N],int i,int j,int m,int n); //申明
void main()
{
long flag(long array[N],int i,int j,int m);
int b;
long array[N]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
for(b=0;b20;b++)
printf("%5d\n",array[b]);
}
long flag(long array[N],int i,int j,int m,int n) //定义
{
for(i=0;i19;i++)
{
m=0;
for(j=0;j18;j++)
{
if(array[j]array[j-1])
{
n=array[j],array[j]=array[j-1],array[j-1]=n;
m=1;
}
return(array[19]);
}
要注意格式