精华内容
下载资源
问答
  • 结构体数组排序

    2019-08-16 16:23:00
    学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是: 按分数降序排列学生的记录,高分在前,低分在后*/ #include<stdio.h> #define N 16 typedef struct...
    学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:
    按分数降序排列学生的记录,高分在前,低分在后*/
    #include<stdio.h>
    #define   N   16
    typedef  struct
    {  char  num[10];
       int   s;
    } STREC;
    void fun(STREC a[])
    {
    	int i,j;
    	STREC p;
    	for(i=0;i<N-1;i++)        
    		for(j=i+1;j<N;j++)      //选择排序
    		{
    			if(a[i].s<a[j].s)
    			{
    				p=a[i];
    				a[i]=a[j];
    				a[j]=p;
    			}
    		}
    }
    
    void main()
    {  STREC  s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
    		{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
    		{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
    		{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}};
       int  i;FILE *out ;
       fun( s );
       printf("The data after sorted :\n");
       for(i=0;i<N; i++)
       {  if( (i)%4==0 )printf("\n");
          printf("%s  %4d  ",s[i].num,s[i].s);
       }
       printf("\n");
       out = fopen("out.dat","w") ;
       for(i=0;i<N; i++)
       {  if( (i)%4==0 && i) fprintf(out, "\n");
          fprintf(out, "%4d  ",s[i].s);
       }
       fprintf(out,"\n");
       fclose(out) ;
    }
            
    

      

    转载于:https://www.cnblogs.com/-slz-2/p/11364710.html

    展开全文
  • 根据结构体数组中某一数据项对结构体数组排序

    万次阅读 多人点赞 2018-08-17 17:46:06
    /* ...*All rights reserved. ...*问题描述:输入结构体数组,并根据结构体中的某一数据项对整个结构体数组进行排序 *输入描述:; *程序输出: */ #include<stdio.h> #include<string.h> struc...
    /*
    *copyright(c) 2018,HH
    *All rights reserved.
    *作 者:HH
    *完成日期:2018年8月17日
    *版本号:v1.0
    *
    *问题描述:输入结构体数组,并根据结构体中的某一数据项对整个结构体数组进行排序
    *输入描述:;
    *程序输出:
    */
    
    
    #include<stdio.h>
    #include<string.h>
    
    struct student
    {
        int num;
        char name[20];
        int cpp;
        int math;
        int english;
        int grade;
        double average;
    };
    struct student per[6];
    struct student test;
    
    int main()
    {
        int n,m;
        printf("请输入需要统计信息的学生个数:\n");
        scanf("%d",&m);
        printf("请依次输入该%d名学生的信息\n",m);
        for(n=0;n<m;n++)
        {
            printf("请输入第%d个学生学号:\n",n+1);
            scanf("%d",&per[n].num);
            printf("请输入第%d个学生姓名:\n",n+1);
            scanf("%s",&per[n].name);
            printf("请输入第%d个学生C语言成绩:\n",n+1);
            scanf("%d",&per[n].cpp);
            printf("请输入第%d个学生数学成绩:\n",n+1);
            scanf("%d",&per[n].math);
            printf("请输入第%d个学生英语成绩:\n",n+1);
            scanf("%d",&per[n].english);
            per[n].grade=per[n].math+per[n].cpp+per[n].english;
            printf("第%d个学生的总成绩是%d:\n",n+1,per[n].grade);
            per[n].average=per[n].grade/3;
            printf("第%d个学生的平均成绩是%f:\n",n+1,per[n].average);
        }
        int i,j;
        for(i=0;i<m;i++)
        {
           for(j=0;j<m-i-1;j++)//此处很重要
            {
                if(per[j].cpp<per[j+1].cpp)//根据单一数据项,对整个结构体进行排序
                {
                    test=per[j+1];//结构体允许整体赋值
                    per[j+1]=per[j];
                    per[j]=test;
                }
            }
        }
        printf("该%d名学生按照C语言成绩的排序分别是:\n",m);
        for(i=0;i<m;i++)
        {
            printf("c语言第%d名的信息如下:\n",i+1);
            printf("%d %s\n",per[i].num,per[i].name);
            printf("%d %d %d %d %f\n",per[i].cpp,per[i].math,per[i].english,per[i].grade,per[i].average);
        }
        return 0;
    }
    
    
    
    
    
    

    展开全文
  • sort函数对结构体数组排序 #include<iostream> #include<algorithm> using namespace std; struct st { int a1; int b1; }arr[100]; //首先 &是取地址运算符 在cmp中 把结构体的地址赋值给了 x ,y...

    sort函数对结构体数组排序

    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct st
    {
    	int a1;
    	int b1;
    }arr[100];
    //首先 &是取地址运算符   在cmp中 把结构体的地址赋值给了 x ,y ;
    //x对应sort函数的第一个参数,y 对应sort函数的第二个参数  
    // x.b1 与  y.b1 就确定了  排序的元素和大小顺序
    bool  cmp(const st &x, const st &y)
    {
    	return x.b1<y.b1;//从小到大排<,若要从大到小排则>
    }
    int main()
    {
    	int i;
    	for (i=0;i<3;i++)
    	  cin>>arr[i].a1>>arr[i].b1;//对结构体进行输入 
    	  sort(arr,arr+3,cmp);
    	for (i=0;i<3;i++)
    	  cout<<arr[i].a1<<" "<<arr[i].b1<<endl;
    }
    
    展开全文
  • C++ 6.0库函数指针传递调用结构体数组排序要稳定性排序怎么做?最好给出一个例子加以说明,代码怎么写?
  • C++sort()给结构体数组排序

    万次阅读 2016-11-20 17:04:12
    在对结构体数组排序时,首先确定排序数组的关键字,并且在排序过程中不是交换关键字的顺序,而是交换这个结构的地址,从而使结构体数组有序。 #include using namespace std; #include typedef struct Test { int...

    在对结构体数组排序时,首先确定排序数组的关键字,并且在排序过程中不是交换关键字的顺序,而是交换这个结构的地址,从而使结构体数组有序。

    #include <iostream>
    using namespace std;
    #include <algorithm>
    typedef struct Test
    {
           int a;
           int b;
    }t;
    t test[100];
    
    bool Cmpare(const t &a, const t &b)            //const必须加,不然会错,目前不懂为啥。当return的是ture时,a先输出,所以示例中是升序
    {
         return a.a < b.a;
    }
    
    int main()
    {
        sort(test, test+ 100,cmpare);                      
        return 0;
    }
    
    展开全文
  • sort() 及对结构体数组排序 用法

    千次阅读 2019-05-07 19:03:38
    调用:#include<algorithm> sort默认从小到大排序。 从大到小排序: ...对结构体数组排序: struct node{ int name; int data; }a[10000]; bool cmp(node x,node y){ return...
  • 使用结构体数组排序

    2020-11-05 22:06:48
    案例描述:使用一个学生结构体,将班级中的学生按照成绩...2、创建一个学生结构体数组,并赋值 Student sdu[10] = { //学生的信息 {18,95,"Student_A"}, {18,65,"Student_B"}, {18,78,"Student_C"}, {18,62,"S
  • 结构体数组排序了解一下 /* qq:1239198605 ctgu_yyf */ #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt...
  • 用模拟的qsort进行解释结构体数组排序 typedef struct Stu{ char name[100]; char sex[10]; }stu; void Swap(void *_x, void *_y,int size) { char *x = (char *)_x; char *y = (char *)_y; char temp = 0; ...
  • 1.按照结构体数组的某一项排序,那么一个结构体包含的其他元素仍保持不变。也就是说只能选择其中一项作为指标进行排序,相应的其他值对应不变化。 2.排序后仍然是它们的组合,只是顺序变了而已 3.如果希望升序排序,...
  • 要求:在主函数里创建5个结构体数组,从终端输入信息,分别以工龄排序和年龄排序输出,排序方式自定。 代码如下: #include “pch.h” #include #include&amp;amp;amp;amp;amp;amp;amp;lt;string.h&amp...
  • 结构体数组排序输出的省事办法。。。。
  • 笔记:用memset对整个结构体数组进行初始化 如果结构体变量都是一致的,比如: struct person{ int age; int cost; }; person per[10]; memset(per,0,sizeof(person)*10); 但是不一致就像下面的代码一样逐一...
  • 矩阵排序(easy version) 时间限制: 1 Sec内存限制: 128 MB 题目描述 给你一个大小为n*n的矩阵,矩阵里每个数均不相同,你需要对这个矩阵进行q次排序。 每一次排序会给你一个数 bi,你需要将当前矩阵的行按照第...
  • 但是在结构体中是可以直接进行赋值操作的 st[1] = st[2]; printf(“姓名 = %s, 年龄 = %d, 班级 = %s, 成绩 = %d\n”,st[1].name,st[1].age,st[1].classes,st[1].score); 结构体使可以进行互相赋值的 struct A a1 = ...
  • C# class数组,结构体数组排序

    千次阅读 2018-09-26 21:19:16
    在类里面实现CompareTo的方法,并return要进行比较的成员,然后就可以使用sort函数对class数组进行排序了。 public class SignList : IComparable { public string Fimage { get; set; } public long Ftime { ...
  • ·c结构体数组排序

    2019-08-04 00:29:00
    #include "stdio.h" #include "string.h" struct Student{ int num; char name[20]; float score; }; int main(){ struct Student stu[5] = {{1,"gan",90},{2,"li",98},{3,"zhao",80},{4,"chen",86...
  • 11 05 结构体排序 11 05 结构体排序(冒泡) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> struct students { char name[21]; float scores...
  • 输入n(n<.../*学生成绩排序*/ #include <stdio.h> struct student{ //学生信息结构定义 int num; //学号 char name[10]; //姓名 int computer,english,math; ...
  • 九度OJ-题目1167:数组排序原题链接:http://ac.jobdu.com/problem.php?pid=1167题目描述:输入一个数组的值,求出各个值从小到大排序后的次序。输入:输入有多组数据。 每组输入的第一个数为数组的长度n(1),后面的...
  • 要注意强制转换 #include <stdio.h> #include <stdlib.h> typedef struct{ int num; char name[20]; float chinese; float math; float english; }Stu,*pStu;...void arrPrint...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,052
精华内容 820
关键字:

结构体数组排序