| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:如何改进该段代码
只看楼主 加入收藏
cj_yang
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-12-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
如何改进该段代码
#include
#include

struct student
{
    int age;
    float score;
    char name[100];   
};

void Input_student_information(struct student *, int);
void student_informatiom_processing(struct student *, int);
void output_student_information(struct student *, int);


int main(void)
{
    int len;
    struct student * pArr;
   
    printf("请输入学生数:");
    scanf("%d", &len);
   
    pArr = (struct student *)malloc(sizeof(struct student)*len);
   
    Input_student_information(pArr, len);
    student_informatiom_processing(pArr, len);
    output_student_information(pArr, len);
   
    return 0;
}

void  Input_student_information(struct student * pArr, int len)
{
    int i;
   
    for (i=0; i
搜索更多相关主题的帖子: void include 如何 
2013-01-05 18:31
cj_yang
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-12-28
收藏
得分:0 
汗!貌似发得不好,请无视该贴,或请删了吧
2013-01-05 18:32
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
帖全了再发下呗。。
2013-01-05 18:33
cj_yang
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-12-28
收藏
得分:0 
#include <stdio.h>
#include <malloc.h>

struct student
{
    int age;
    float score;
    char name[100];   
};

void Input_student_information(struct student *, int);
void student_informatiom_processing(struct student *, int);
void output_student_information(struct student *, int);


int main(void)
{
    int len;
    struct student * pArr;
   
    printf("请输入学生数:");
    scanf("%d", &len);
   
    pArr = (struct student *)malloc(sizeof(struct student)*len);
   
    Input_student_information(pArr, len);
    student_informatiom_processing(pArr, len);
    output_student_information(pArr, len);
   
    return 0;
}

void  Input_student_information(struct student * pArr, int len)
{
    int i;
   
    for (i=0; i<len; i++)
    {   
        printf("请输入第%d位学生的信息:\n", i+1);
        
        printf("请输入学生的年龄:");
        scanf("%d", &pArr[i].age);
        
        printf("请输入学生的成绩:");
        scanf("%f", &pArr[i].score);
        
        printf("请输入学生的姓名:");
        scanf("%s", pArr[i].name[100]);//48行
    }        
}

void student_informatiom_processing(struct student * pArr, int len)
{
    int i, j;
    struct student t;
   
    for (i=0; i<len; i++)
    {
        for (j=0; j<len-i-1; j++)
        {
            if(pArr[j].score > pArr[j+1].score)
            {
                t = pArr[j];
                pArr[j] = pArr[j+1];
                pArr[j+1] = t;   
            }
        }   
    }        
}

void output_student_information(struct student * pArr, int len)
{
    int i;
   
    for (i=0; i<len; i++)
    {
        printf("排名第%d位的学生信息为:", i+1);
        printf("年龄为:%d", pArr[i].age);
        printf("成绩为:%f", pArr[i].score);
        printf("姓名为:%s", pArr[i].name[100]);   
        printf("\n");
    }   
}

该代码在48行哪里有个问题,去掉48行就能正常运行,否则就会出错,我实在找不出问题,求解
2013-01-05 18:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把行号也补上呗

授人以渔,不授人以鱼。
2013-01-05 18:36
cj_yang
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-12-28
收藏
得分:0 
我有标啊。。 scanf("%s", pArr[i].name[100]);//48行
2013-01-05 18:37
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <malloc.h>

struct student
{
    int age;
    float score;
    char name[100];  
};

void Input_student_information(struct student *, int);
void student_informatiom_processing(struct student *, int);
void output_student_information(struct student *, int);


int main(void)
{
    int len;
    struct student * pArr;
  
    printf("请输入学生数:");
    scanf("%d", &len);
  
    pArr = (struct student *)malloc(sizeof(struct student)*len);
  
    Input_student_information(pArr, len);
    student_informatiom_processing(pArr, len);
    output_student_information(pArr, len);
  
    return 0;
}

void  Input_student_information(struct student * pArr, int len)
{
    int i;
  
    for (i=0; i<len; i++)
    {  
        printf("请输入第%d位学生的信息:\n", i+1);
       
        printf("请输入学生的年龄:");
        scanf("%d", &pArr[i].age);
       
        printf("请输入学生的成绩:");
        scanf("%f", &pArr[i].score);
       
        printf("请输入学生的姓名:");
        scanf("%s", pArr[i].name);//48行
    }       
}

void student_informatiom_processing(struct student * pArr, int len)
{
    int i, j;
    struct student t;
  
    for (i=0; i<len; i++)
    {
        for (j=0; j<len-i-1; j++)
        {
            if(pArr[j].score > pArr[j+1].score)
            {
                t = pArr[j];
                pArr[j] = pArr[j+1];
                pArr[j+1] = t;  
            }
        }  
    }       
}

void output_student_information(struct student * pArr, int len)
{
    int i;
  
    for (i=0; i<len; i++)
    {
        printf("排名第%d位的学生信息为:", i+1);
        printf("年龄为:%d", pArr[i].age);
        printf("成绩为:%f", pArr[i].score);
        printf("姓名为:%s", pArr[i].name);  
        printf("\n");
    }  
}


代码风格不错 但要深刻理解C里面对字符串的处理
2013-01-05 18:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
scanf("%s", pArr[i].name[100]);//48行
哦,这行啊?[100]是什么意思?你见谁这样写过?

授人以渔,不授人以鱼。
2013-01-05 18:39
cj_yang
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-12-28
收藏
得分:0 
晕死,还是不够细心啊。。谢谢了。呵呵。
2013-01-05 18:41
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用cj_yang在2013-1-5 18:41:41的发言:

晕死,还是不够细心啊。。谢谢了。呵呵。

祝楼主学习顺利 记得要结题哦 谢谢
2013-01-05 18:43
快速回复:如何改进该段代码
数据加载中...
 
   



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

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