|
发表于 2018-12-9 11:33:31
|
显示全部楼层
- #include<stdio.h>
- typedef struct {
- int num;
- char name[20];
- int score;
- }stu;
- void rank(stu a[5]); //在此处加上一个函数的声明
- int main()
- {
- stu s[5]={{1,"xiaoming",80},{2,"xiaohong",90},{3,"xiaoliang",60},{4,"xiaozhang",85},{5,"xiaoli",100}};
- int i;
- for(i=0;i<5;i++)
- {
- printf("第%d名:",i+1);
- printf("%d %s %d\n",s[i].num,s[i].name,s[i].score);
- }
- rank(s[5]);
- for(i=0;i<5;i++)
- printf("%d %s %d",s[i].num,s[i].name,s[i].score);
-
- }
- void rank(stu a[5])
- {
- stu x;
- int i,j;
- for(i=0;i<4;i++)
- {
- for(j=4;j>i;j--)
- {
- if(a[i].score<a[j].score)
- {
- x=a[j];
- a[j]=a[i];
- a[i]=x;
- }
- }
- }
- }
复制代码
问题原因: 因为你的函数定义且声明在下面,当main函数里头要调用 rank 函数是就找不到这个函数的声明或原型,所以会把这个函数当作一个未定义的函数看待。 只要你把声明放在要调用此函数一句的上方即可。 |
|