标题:c语言一道题,求和和排序函数插入后,么错误,但结果不对
只看楼主
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
我么注意手机粘贴出问题了!!!

黑大大一,软件工程,求指教!!
2015-12-04 19:05
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 2楼 边小白
#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
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 9楼 邹阳
能不能加入求和函数,你这个我也会,但把求和函数加进去就不好使了。

黑大大一,软件工程,求指教!!
2015-12-04 19:13
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:2 
sum[i]=0;
    sum[i]=stu[i].sum+stu[i].a+stu[i].b;
  }
这明显有问题,sum[i]没有具体元素仅代表一个地址,哪个代表总分你都没弄清楚吗?
2015-12-04 19:55
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
回复 16楼 ehszt
把那个改成sum[i],把stu取了,也不对

黑大大一,软件工程,求指教!!
2015-12-04 23:48
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
得分:0 
思路一片混乱,你告诉我,为什么结构体里要定义int sum[30]?而且还是30个?题目要求你存五个记录,为什么你只循环3次输入数据?你的求和排序函数里的局部变量int sum[30]和结构体里的sum有什么关系?输出函数里呐?你计算输出局部变量sum有什么用?局部变量和结构体里的a,b半毛关系都没得。。
2015-12-05 11:34
wsc673747780
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-12-4
得分:0 
#include <stdio.h>
void shuru(void);
void qiuhe(void);
void paixu(void);
void shuchu(void);
typedef struct student
{
    long studentID;
    char studentName[10];
    int toal;
    int a;
    int b;
}STUDENT;
    STUDENT stu[3];
void main()
{
    shuru();
    qiuhe();
    paixu();
    shuchu();
}
void shuru(void)
{
    int i,j;
    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);
    }
    qiuhe();
    shuchu();
}
void shuchu(void)
{
    int i;
    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,stu[i].toal);
    }
}
void qiuhe(void)
{
    int i;
    for(i=0;i<3;i++)
  {
     stu[i].toal=stu[i].a+stu[i].b;
  }
}
void paixu(void)
{
   int i,j;
   struct student temp;
   for(i=0;i<3;i++)
   {
      for(j=i+1;j<3;j++)
     {
          if(stu[i].toal<stu[j].toal)
        {
            temp=stu[i];
            stu[i]=stu[j];
            stu[j]=temp;
        }
      }
    }
}


我已会,为了输入方便,所以改成了两门三个学生,谢谢大家!!!

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



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




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

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