当前位置:编程学习 > C/C++ >>

c语言 viod

viod main() {viod average(float *p,int n); viod search(float (*p)[4],int n); float score[3][4]={{65,57,70,60},{80,87,90,81},{90,99,100,98}}; average(*score,12); search(score,2); } viod average(float *p,int n) {float *p_end; float sum=0,aver; p_end=p+n-1; for(;p<=p_end;p++) sum=sum+(*p); aver=sum/n; printf("average=%5.2f\n",aver); } viod serch(float (*p),int n) { int i; printf("the score of NO.%d are=\n",n); for(i=0;i<4;i++) printf("%5.2f",*(*(p+n)+i)); } 这个程序不是很懂,求大侠教我,解释哈。
追问:恩,大侠够仔细。
p_end=p+n-1;     /*令p指向数组最后一个元素*/
大侠,为什么要指向最后一个元素呢?谢谢你了。
答案:函数名前面的void是函数的数据类型,void为空类型,表示没有返回值。

viod main()
{viod average(float *p,int n);           /*声明函数average有两个形参,一实数型指针,一整型变量*/
viod search(float (*p)[4],int n);          /*声明函数search,这的p指向含四个实数的一维数组,即指向行*/
float score[3][4]={{65,57,70,60},{80,87,90,81},{90,99,100,98}};   /*定义二维数组score[3][4]并初始化*/   average(*score,12);   /*因为前面对average已声明,在这就可以调用了,把数组score的首元素的地址赋给形参p,把12赋给n*/
search(score,2);  /*调用函数search,score是指向行的地址常量,正好可以赋给形参p*/
}



viod average(float *p,int n)   /*此函数用来求从p所指向的实数开始的n个实数的平均值,在这是求score[3][4]中的元素的平均值,并输出。*/
{float *p_end;     /*定义一个实数型指针变量,后面用来指向数组最后一个元素*/
float sum=0,aver;
p_end=p+n-1;     /*令p指向数组最后一个元素*/
for(;p<=p_end;p++)
sum=sum+(*p);    /*用一个for循环来求得数组所有元素之和*/
aver=sum/n;     /*求平均值*/
printf("average=%5.2f\n",aver);       /*输出平均值*/
}


viod serch(float (*p),int n)     /*这个你抄错了吧,函数是void search(float(*p)[4],int n),前面声明部分形参是一个指向一维数组的指针,到这怎么变成float (*p)了,着什么都不是啊,,,这个函数是用来寻找数组的第n-1行的元素的,,如score[0][0]、score[0][1]、score[0][2]、score[0][3]为第一行的4个元素。*/
{ int i;
 printf("the score of NO.%d are=\n",n);
for(i=0;i<4;i++)
printf("%5.2f",*(*(p+n)+i));   /*输出p+n所指向的行中的4个元素*/
}
其他:第一个函数是求平均数的 viod main()
{viod average(float *p,int n);//声明函数
viod search(float (*p)[4],int n);//声明函数
float score[3][4]={{65,57,70,60},{80,87,90,81},{90,99,100,98}};//初始化二维数组
 average(*score,12);//调用函数
search(score,2);//调用函数
}
viod average(float *p,int n)//开始定义函数
{float *p_end;//定义一个指针变量
float sum=0,aver;
p_end=p+n-1;//让指针p_end指向数组的最后一个元素
for(;p<=p_end;p++)
sum=sum+(*p);//求和数组
aver=sum/n;//计算平均数
printf("average=%5.2f\n",aver);
}
viod serch(float (*p),int n)//定义一个查找函数,用来查询并输出数组第n行的元素
{ int i;
 printf("the score of NO.%d are=\n",n);
for(i=0;i<4;i++)
printf("%5.2f",*(*(p+n)+i));//输出查找到的第n行的所有元素
} void main即为主函数无返回值,在main之前写void或是int之类表示类型的,写上它就要在主函数结束时写return 0;但写在学习c时要求不是很严格,光写main()也是可以的,但如果学习c++时就要严格些,一定是int main(),结尾一定要写return 0.希望可以帮到你!
 

上一个:计算机c语言中。printf(“enter x&y:\n”)是什么意思
下一个:C语言输入字符然后比较是否相同后输出

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,