| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:谁能看一下这个结构体的错误在那儿?急,谢谢。
只看楼主 加入收藏
lyl59840
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2011-12-14
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
谁能看一下这个结构体的错误在那儿?急,谢谢。
建立一结构体,其中包括学生的姓名、性别、年龄和一门课程的成绩。建立的结构体数组通过输入存放全班(最多45人)学生信息,输出考分最高的学生的姓名、年龄、性别和课程的成绩。

#include<stdio.h>

struct message
{
    char s[45];
    char ch[45];
    int old[45];
    double mark[45];
};
typedef struct message mes;
void input(mes *a,int n);
int max(mes *b,int n);
int main()
{
    mes std;
    int max_number;
    int n;
    printf("请输入学生人数:");
    scanf("%d",&n);
    input(&std,n);
    max_number=max(&std,n);
    printf("%d\n",max_number);
    printf("Name          Sex          Age          score\n");
    printf("%s            %c            %d           %lf\n",std.s[max_number],std.ch[max_number],std.old[max_number],std.mark[max_number]);
}
void input(mes *a,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("请输入第%d个学生的姓名:",i+1);
            scanf("  %s",&((*a).s[i]));
        printf("请输入第%d个学生的性别(F or M):",i+1);
            scanf("  %ch",&((*a).ch[i]));
        printf("请输入第%d个学生的年龄:",i+1);
            scanf("%d",&((*a).old[i]));
        printf("请输入第%d个学生的成绩:",i+1);
            scanf("%lf",&((*a).mark[i]));
            getchar();
    }
}
int max( mes *b,int n)
{
    int i,j;
    double maxmark=b->mark[0];
    for(i=0;i<n;i++)
    {
        if(maxmark<b->mark[i])
            maxmark=b->mark[i];
    }
    for(j=0;j<n;j++)
    {
        if(maxmark==b->mark[j])
        {return j;}
    }
   
}
搜索更多相关主题的帖子: 课程 姓名 message include double 
2011-12-17 15:54
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:5 
程序代码:
#include<stdio.h>
#define N 20
struct message
{
    char s[45];
    char ch;////
    int old;/////
    double mark;/////
};
typedef struct message mes;
void input(mes a[],int n);/////
int max(mes b[],int n);//////
int main()
{
    mes std[N];//////
    int max_number;
    int n;
    printf("请输入学生人数:");
    scanf("%d",&n);
    input(std,n);
    max_number=max(std,n);
    printf("%d\n",max_number);
    printf("Name          Sex          Age          score\n");
    printf("%s            %c            %d           %lf\n",std[max_number].s,std[max_number].ch,std[max_number].old,std[max_number].mark);
    return 0;
}
void input(mes a[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("请输入第%d个学生的姓名:",i+1);
        scanf("%s",a[i].s);
        getchar();
        printf("请输入第%d个学生的性别(F or M):",i+1);
        scanf("%c",&a[i].ch);
        getchar();
        printf("请输入第%d个学生的年龄:",i+1);
        scanf("%d",&a[i].old);
        getchar();
        printf("请输入第%d个学生的成绩:",i+1);
        scanf("%lf",&a[i].mark);
        getchar();
    }
}
int max( mes b[],int n)
{
    int i,j;
    double maxmark=b[0].mark;
    for(i=0;i<n;i++)
    {
        if(maxmark<b[i].mark)
            maxmark=b[i].mark;
    }
    for(j=0;j<n;j++)
    {
        if(maxmark==b[j].mark)
        {return j;}
    }
    return 0;
}
2011-12-17 16:14
lyl59840
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2011-12-14
收藏
得分:0 
二楼,请指下我的错误在那儿,谢谢,为什么输出最高分时候就卡到那儿了,出不来了呢?
2011-12-17 16:19
lyl59840
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2011-12-14
收藏
得分:0 
回复 2楼 laznrbfe
这个是我们老师的作业,请问,指针不能弄嘛?为什么我的指针就会报错~
2011-12-17 16:28
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:0 
回复 3楼 lyl59840
不好意思,我不知道有回复在哪里可以看到。我现在才看到你的回复。你加我QQ。我一般很少电脑上线。有事留言给我。379504075.指针可以的,不过,我对指针不熟。
2011-12-21 20:09
飞扬冲天
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:122
注 册:2011-10-21
收藏
得分:0 
结构数组啊!!
2011-12-22 12:47
快速回复:谁能看一下这个结构体的错误在那儿?急,谢谢。
数据加载中...
 
   



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

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