| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:一直都搞不明白!求教!
只看楼主 加入收藏
realswin
Rank: 1
来 自:ShangHai
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-17
收藏
 问题点数:0 回复次数:3 
一直都搞不明白!求教!
各位大哥,我是一个学C的新手。我道题我想了很久多不是很会,希望大家指点。  
下面是原题:  1、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数。 已给出函数的首部fun(  STU  a[], STU  *s  ),请完成该函数。(包括主函数)
结构体的定义如下:    typedef  struct  ss
{  char  num[10];   int  s;  } STU;
程序如下:  int i,j=0;
for(i=0;i<N;i++)
if(a[i].s<a[j].s) j=i;
*s=a[j];     
本身题目不是很难。难在我不会如何照着它给出的fun(  STU  a[], STU  *s  )来写,以及这类函数的调用及返回。
下面是我写的代码
代码.rar (703 Bytes)
。有几个错误,我一直改都改不对,希望大哥们能帮忙改下或者写个例子,小弟感激!
本人24小时在线等,QQ:261360265  谢谢大家
搜索更多相关主题的帖子: 记录 数据 结构体 
2010-08-17 16:29
燕强
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:188
注 册:2010-8-11
收藏
得分:0 
看看是不是你要的
#include<stdio.h>
#define N 5
typedef struct ss
{
    char num[10];
    int s;
} STU;
STU a[N];
void Input(void)
{
    int i;
    for(i=0;i<N;i++)
    {
        printf("num:\n");
        scanf("%s",a[i].num);  //这里不要用&a[i].num
        printf("score:\n");
        scanf("%d",&a[i].s);
    }
}
void print(void)
{
    int i;
    for(i=0;i<N;i++)
        printf("\n%s\t%d\n",a[i].num,a[i].s);
}
void fun(STU a[],STU *s)  //无返回值,,其中s指针指向的就是最低记录
{
    int i,j=0;
    for(i=0;i<N;i++)
        if(a[i].s<a[j].s)
            j=i;
    s=&a[j];  //这里用s 指向最低分的那个记录,
    //return s;
}
int main(void)
{
    STU *low = a;
    Input();
    print();
    fun(a,low);  //这里用参数a,而不是a[N]
    printf("%s,%d",low->num,low->s);
}
2010-08-17 16:47
realswin
Rank: 1
来 自:ShangHai
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-17
收藏
得分:0 
回复 2楼 燕强
我试过了,就一个warning错误。在return s;出现Non-portable pointer conversion in function fun.

我爱C!
2010-08-17 17:54
realswin
Rank: 1
来 自:ShangHai
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-17
收藏
得分:0 
我会了,谢了。

我爱C!
2010-08-17 19:49
快速回复:一直都搞不明白!求教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038241 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved