| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1830 人关注过本帖
标题:学生成绩,结构体问题
只看楼主 加入收藏
陛下
Rank: 2
来 自:南宁
等 级:论坛游民
帖 子:62
专家分:90
注 册:2010-5-15
收藏
得分:0 
回复 8楼 指尖
有点迟不好意思
看看满意不
#include"stdio.h"
struct NEWS
{
    int number;
    char name[20];
    float m;
    float y;
    float c;
    float avery;
};
void read(struct NEWS *p)
{
    printf("输入学号:\n");
    scanf("%d",&p->number);
    printf("输入姓名\n");
    scanf("%s",p->name);
    printf("输入数学成绩:\n");
    scanf("%f",&p->m);
    printf("输入英语成绩:\n");
    scanf("%f",&p->y);
    printf("输入c语言成绩:\n");
    scanf("%f",&p->c);
    p->avery=(p->m+p->y+p->c)/3;
}
void out(struct NEWS *p)
{
    printf("%d    ",p->number);
    printf("%s    ",p->name);
    printf("%f    ",p->m);
    printf("%f    ",p->y);
    printf("%f    ",p->c);
    printf("%f    \n",p->avery);

}
void big(struct NEWS *p)
{
    int i,j;
    for(i=0;i<3;i++)
        for(j=0;j<9-i;j++)
        {
            if((p+j)->avery>(p+j+1)->avery)
                *(p+j+1)=*(p+1);
        }
}

void main()
{
    int i;
    struct NEWS a[10];
    for(i=0;i<10;i++)
    {
        printf("第%d个学生信息输入:",i+1);
        read(a+i);
    }
    printf("学号    姓名   数学    英语   c语言    平均分\n");
    for(i=0;i<10;i++)
        out(a+i);
    big(a);
    for(i=7;i<10;i++)
        out(a+i);
}
2010-06-10 00:11
叶云
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-31
收藏
得分:0 
回复 20楼 指尖
能不能给我发个正确答案呀???
2013-05-31 18:14
周华
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-11-27
收藏
得分:0 
回复 7楼 平凡の嫩嫩鼻
#include<stdio.h>
struct student
{
    int num;
    char name[50];
    float score[3];
};
void inputSore(struct student *p);
void printScore(struct student s);

void main ()   
{
    struct student stu[5];
    int i;
    for(i=1;i<=5;i++)
    {
           printf("请输入\n学号:  姓名:     三科考试成绩:\n");
        inputSore (&stu[5]);
    }
    printScore(stu[5]);   
}

void inputSore(struct student *p)
{
    scanf("%d%s%f%f%f",&p->num,p->name,&p->score[0],&p->score[1],&p->score[2]);
    printf("\n");
}

void printScore(struct student s)
{
    int i;
    printf("学号:    姓名:     三科考试成绩:\n");
    for (i=0;i<5;i++)
    {
        printf("%d   ",s.num);
        printf("%s   ",s.name);
         printf("%f   %f   %f\n",s.score[0],s.score[1],s.score[2]);
    }
}
为什么我的这段程序最后输出的五个结果就只有输入的最后一个学生的信息呢???(最后一个学生的信息重复了五次,而不是五个学生的信息圈打印出来。)大神求解答
2013-11-27 12:21
周华
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-11-27
收藏
得分:0 
我又该了下,结果更叼,直接“烫烫烫烫”就刷完屏幕了
#include<stdio.h>
struct student
{
    int num;
    char name[50];
    float score[3];
};
void inputSore(struct student *p);
void printScore(struct student s[5]);

void main ()   
{
    struct student stu[5];
    int i;
    for(i=1;i<=5;i++)
    {
           printf("请输入\n学号:  姓名:     三科考试成绩:\n");
        inputSore (&stu[5]);
    }
    printScore(stu);   
}

void inputSore(struct student *p)
{
    scanf("%d%s%f%f%f",&p->num,p->name,&p->score[0],&p->score[1],&p->score[2]);
    printf("\n");
}

void printScore(struct student s[5])
{
    int i;
    printf("学号:    姓名:     三科考试成绩:\n");
    for (i=0;i<5;i++)
    {
        printf("%d   ",s[i].num);
        printf("%s   ",s[i].name);
         printf("%f   %f   %f\n",s[i].score[0],s[i].score[1],s[i].score[2]);
    }
}
重点就只改了这个函数“void printScore(struct student s[5])”然后,把这里该了:“printScore(stu);”
为什么就这样了呢??????
2013-11-27 12:46
快速回复:学生成绩,结构体问题
数据加载中...
 
   



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

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