标题:c语言一道题,求和和排序函数插入后,么错误,但结果不对
只看楼主
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
结帖率:100%
已结贴  问题点数:10 回复次数:18 
c语言一道题,求和和排序函数插入后,么错误,但结果不对
定义一个包括学号、姓名及三门课的成绩和总分的结构体,利用该结构体说明一个包含五个人的结构体数组。从键盘输入五个人的基本信息、计算总分,并根据总分排序输出一个成绩单!
搜索更多相关主题的帖子: 成绩单 结构体 c语言 键盘 三门 
2015-12-04 09:51
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 2楼 边小白
#include <stdio.h>void shuru(void);void paixu();void qiuhe();void shuchu(void);typedef struct student{    long studentID;    char studentName[10];    char studentSex;    long birthday;    int score[3];}STUDENT;    STUDENT stu[3];void main(){    shuru();    paixu();}void shuru(void){    int i,j;    for(i=0;i<3;i++)    {        printf("请输入第%d个学生的学号 姓名 性别(M or W) 生日 数学成绩 语文成绩 英语成绩\n",i+1);            scanf(" %ld",&stu[i].studentID);            scanf("%s",&stu[i].studentName);            scanf(" %c",&stu[i].studentSex);            scanf("%ld",&stu[i].birthday);        for(j=0;j<3;j++)        {            scanf("%d",&stu[i].score[j]);        }    }    qiuhe();    shuchu();}void shuchu(void){    int i,j,sum[60];    printf("学号\t姓名\t性别\t生日\t数学成绩\t语文成绩\t英语成绩\t总分\t");    for(i=0;i<3;i++)    printf("%10ld\t%8s\t%3c\t%6d\t%d\t",stu[i].studentID,stu[i].studentName,stu[i].studentSex,stu[i].birthday);    for(j=0;j<3;j++)           {              printf("%3d\t",stu[i].score[j]);           }             printf("%d\t",sum[i]);}  void qiuhe(){    int i,j,sum[60];    for(i=0;i<3;i++)    {        sum[i]=0;        for(j=0;j<3;j++)        {            sum[i]=sum[i]+stu[i].score[j];        }    }}void paixu(void){    struct student temp;    int i,j,sum[60];    for(j=0;j<3;j++)        {        for(i=j+1;i<4;i++)        {            if(sum[i] <sum[j])            {                temp=stu[j];                stu[j]=stu[i];                stu[i]=temp;            }        }    }    shuchu();}

黑大大一,软件工程,求指教!!
2015-12-04 11:50
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 4楼 边小白
不是啊,自己打的

黑大大一,软件工程,求指教!!
2015-12-04 13:42
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
得分:2 
真的?对你这样打代码的方式,估计你老师看了都崩溃了。
2015-12-04 14:17
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
得分:2 
回复 5楼 wsc673747780
我觉得正常情况下,自己打的代码复制粘贴还是保留原来的格式的,除非你这么打,反正我看过后是凌乱了~~~

I'm a new comer
2015-12-04 15:56
hacker梦魇
Rank: 2
等 级:论坛游民
帖 子:40
专家分:42
注 册:2015-10-29
得分:2 
以前写的代码能不能正规一点  你这样没有人会帮你解答的 因为太乱了 没人会愿意看 没人答复你 你也得不到好的答案 希望你能明白这一点
2015-12-04 17:56
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
得分:0 
额,按照LZ的要求,我自己写了个,不过在最后的排名并没有加入姓名,个人感觉你自己加入姓名,在排序后会更形象些。

#include<stdio.h>
#define NUM 10
struct information
    {
        int number;  //学号
        char name[NUM];  //姓名
        float chinese;  //语文
        float math;  //数学
        float english;  //英语
        float allstore;  //总分
    };
int main()
{
    struct information a[NUM];
    int students=3;  //学生人数
    int i,j;
    float temp;
    float b[NUM];
    for(i=1;i<=students;i++)
    {
        printf("请输入第 %d 个学生的信息:\n",i);
        printf("姓名:");
        scanf("%s",&a[i-1].name);
        printf("学号:");
        scanf("%d",&a[i-1].number);
        printf("语文:");
        scanf("%f",&a[i-1].chinese);
        a[i-1].allstore+=a[i-1].chinese;
        printf("数学:");
        scanf("%f",&a[i-1].math);
        a[i-1].allstore+=a[i-1].math;
        printf("英语:");
        scanf("%f",&a[i-1].english);
        a[i-1].allstore+=a[i-1].english;
        printf("\n");
        system("PAUSE");
        system("CLS");
    }
    printf(" %d 个学生的成绩已经输入完毕!",students);
    system("PAUSE");
    system("CLS");
   
    for(i=0;i<students;i++)  //把结构体中的总成绩传到数组中,供排序使用
    {
        b[i]=a[i].allstore;
    }
    for(i=0;i<students;i++)  //按照总成绩 排列大小
    {
        for(j=0;j<students-i;j++)
        {
            if(b[j]>b[j+1])
            {
                temp=b[j],b[j]=b[j+1],b[j+1]=temp;
            }
        }
    }
    printf("总成绩排名:\n");
    printf("\n");
    for(i=0;i<students;i++)
    {
        printf("第%d名: %.2f",i+1,b[students-i]);  //按照从大到小排名输出
        printf("\n");
    }
   
        
}//经过测试已经成功运行!

[此贴子已经被作者于2015-12-4 18:43编辑过]

收到的鲜花
  • wsc6737477802015-12-04 19:08 送鲜花  3朵   附言:原创内容

I'm a new comer
2015-12-04 18:34
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 6楼 newdos
#include <stdio.h>
void shuru(void);
void qiuhepaixu(void);
void shuchu(void);
typedef struct student
{
    long studentID;
    char studentName[10];
    int sum[30];
    int a;
    int b;

}STUDENT;
    STUDENT stu[3];
void main()
{
    shuru();
    qiuhepaixu();
}

void shuru(void)
{
    int i;
    for(i=0;i<3;i++)
    {
        printf("请输入第%d个学生的学号 姓名  数学成绩 语文成绩\n",i+1);
        scanf("%ld",&stu[i].studentID);
        scanf("%s",&stu[i].studentName);

        scanf("%d",&stu[i].a);
        scanf("%d",&stu[i].b);

    }
    shuchu();
}
void shuchu(void)
{
    int i,sum[30];
    printf("学号\t 姓名\t  数学\t 语文\t  总分\n");
    for(i=0;i<3;i++)
    printf("%ld\t %s\t %d\t  %d\t %d\n",stu[i].studentID,stu[i].studentName,stu[i].a,stu[i].b,sum[i]);
}


void qiuhepaixu(void)
{
    int i,j,sum[30];
    for(i=0;i<3;i++)
  {
    sum[i]=0;
    sum[i]=stu[i].sum+stu[i].a+stu[i].b;
  }

   struct student temp;
   for(i=0;i<3;i++)
   {
      for(j=i+1;j<4;j++)
    {
          if(stu[i].sum>stu[j].sum)
        {
            temp=stu[i];
            stu[i]=stu[j];
            stu[j]=temp;
         }
      }
     }
     shuchu();
}

黑大大一,软件工程,求指教!!
2015-12-04 19:03
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 7楼 邹阳
#include <stdio.h>
void shuru(void);
void qiuhepaixu(void);
void shuchu(void);
typedef struct student
{
    long studentID;
    char studentName[10];
    int sum[30];
    int a;
    int b;

}STUDENT;
    STUDENT stu[3];
void main()
{
    shuru();
    qiuhepaixu();
}

void shuru(void)
{
    int i;
    for(i=0;i<3;i++)
    {
        printf("请输入第%d个学生的学号 姓名  数学成绩 语文成绩\n",i+1);
        scanf("%ld",&stu[i].studentID);
        scanf("%s",&stu[i].studentName);

        scanf("%d",&stu[i].a);
        scanf("%d",&stu[i].b);

    }
    shuchu();
}
void shuchu(void)
{
    int i,sum[30];
    printf("学号\t 姓名\t  数学\t 语文\t  总分\n");
    for(i=0;i<3;i++)
    printf("%ld\t %s\t %d\t  %d\t %d\n",stu[i].studentID,stu[i].studentName,stu[i].a,stu[i].b,sum[i]);
}


void qiuhepaixu(void)
{
    int i,j,sum[30];
    for(i=0;i<3;i++)
  {
    sum[i]=0;
    sum[i]=stu[i].sum+stu[i].a+stu[i].b;
  }

   struct student temp;
   for(i=0;i<3;i++)
   {
      for(j=i+1;j<4;j++)
    {
          if(stu[i].sum>stu[j].sum)
        {
            temp=stu[i];
            stu[i]=stu[j];
            stu[j]=temp;
         }
      }
     }
     shuchu();
}

黑大大一,软件工程,求指教!!
2015-12-04 19:04
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 8楼 hacker梦魇
#include <stdio.h>
void shuru(void);
void qiuhepaixu(void);
void shuchu(void);
typedef struct student
{
    long studentID;
    char studentName[10];
    int sum[30];
    int a;
    int b;

}STUDENT;
    STUDENT stu[3];
void main()
{
    shuru();
    qiuhepaixu();
}

void shuru(void)
{
    int i;
    for(i=0;i<3;i++)
    {
        printf("请输入第%d个学生的学号 姓名  数学成绩 语文成绩\n",i+1);
        scanf("%ld",&stu[i].studentID);
        scanf("%s",&stu[i].studentName);

        scanf("%d",&stu[i].a);
        scanf("%d",&stu[i].b);

    }
    shuchu();
}
void shuchu(void)
{
    int i,sum[30];
    printf("学号\t 姓名\t  数学\t 语文\t  总分\n");
    for(i=0;i<3;i++)
    printf("%ld\t %s\t %d\t  %d\t %d\n",stu[i].studentID,stu[i].studentName,stu[i].a,stu[i].b,sum[i]);
}


void qiuhepaixu(void)
{
    int i,j,sum[30];
    for(i=0;i<3;i++)
  {
    sum[i]=0;
    sum[i]=stu[i].sum+stu[i].a+stu[i].b;
  }

   struct student temp;
   for(i=0;i<3;i++)
   {
      for(j=i+1;j<4;j++)
    {
          if(stu[i].sum>stu[j].sum)
        {
            temp=stu[i];
            stu[i]=stu[j];
            stu[j]=temp;
         }
      }
     }
     shuchu();
}

黑大大一,软件工程,求指教!!
2015-12-04 19:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-459873-1-1.html




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

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