精华内容
下载资源
问答
  • 模拟EXCEL排序

    2020-11-19 16:06:20
    7-5 模拟EXCEL排序 (14分) 7-5 模拟EXCEL排序 (14分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10 ​...N行中输出按要求排序的结果,即:当C=1

    7-5 模拟EXCEL排序 (14分)

    7-5 模拟EXCEL排序 (14分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ )
    和C,其中N是纪录的条数,C是指定排序的列号。之后有
    N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0,
    100]内的整数)组成,相邻属性用1个空格隔开。 输出格式:
    在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。
    输入样例: 3 1 000007 James 85 000010 Amy 90 000001 Zoe 60 输出样例: 000001 Zoe
    60 000007 James 85 000010 Amy 90

    这里用了qsort来做,不过好像c++的sort更简单一些。

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct Excle{
        char id[7];
        char name[9];
        int score;
    }Excle;
    
    int comp1(const void*a,const void*b)
    {
        return strcmp((*(Excle*)a).id,(*(Excle*)b).id);
    }
    int comp2(const void*a,const void*b)
    {
        if(strcmp((*(Excle*)a).name,(*(Excle*)b).name)==0)return strcmp((*(Excle*)a).id,(*(Excle*)b).id);
        else return strcmp((*(Excle*)a).name,(*(Excle*)b).name);
    }
    int comp3(const void*a,const void*b)
    {
        if(((*(Excle*)a).score)==((*(Excle*)b).score))return strcmp((*(Excle*)a).id,(*(Excle*)b).id);
        else return (*(Excle*)a).score-(*(Excle*)b).score;
    }
    
    int main(){
        int i,n,c;
        scanf("%d %d",&n,&c);
        Excle PX[n];
        for(i=0;i<n;i++)
        {
            scanf("%s %s %d",PX[i].id,PX[i].name,&PX[i].score);
        }
        switch(c){
            case 1:qsort(PX,n,sizeof(PX[0]),comp1);break;
            case 2:qsort(PX,n,sizeof(PX[0]),comp2);break;
            case 3:qsort(PX,n,sizeof(PX[0]),comp3);break;
        }
        for(i=0;i<n;i++)
        {
            printf("%s %s %d\n",PX[i].id,PX[i].name,PX[i].score);
        }
    }
    
    展开全文
  • Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: ...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非.

    Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。
    输入格式:
    输入的第一行包含两个正整数N(≤10
    ​5
    ​​ ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。
    输出格式:
    在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。

    注意 : 学号字符串转数字
    代码:

    #include<iostream>
    #include<queue>
    #include<stack>
    #include<cstring>
    #include<stdlib.h>
    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    
    #define LL long long
    #define MAXN 100001;
    
    using namespace std;
    
    
    struct node{
        string num;
        int num_;
        string name;
        int grade;
        //node() : num(0), num_(0), name(0), grade(0){}
    };
    
    bool cmp1(node a, node b){
        return a.num_ < b.num_;
    }
    
    bool cmp2(node a, node b){
        if(a.name == b.name){
            return a.num_ < b.num_;
        }
        return a.name < b.name;
    }
    
    bool cmp3(node a, node b){
        if(a.grade == b.grade){
            return a.num_ < b.num_;
        }
        return a.grade < b.grade;
    }
    struct node stu[100001];
    
    int main(){
        ios :: sync_with_stdio(false);
        int N, C;
        cin >> N >> C;
        for(int i = 0; i < N; i++){
            cin >> stu[i].num >> stu[i].name >> stu[i].grade;
            stu[i].num_ = 0;
            int j = 0;
            for(int j; j < 6; j++){
                if(stu[i].num[j] != '0')
                    break;
            }
            for(int k = j; k < 6; k++){
                stu[i].num_ = stu[i].num_ * 10 + stu[i].num[k] - '0';
            }
        }
        if(C == 1) sort(stu, stu+N, cmp1);
        if(C == 2) sort(stu, stu+N, cmp2);
        if(C == 3) sort(stu, stu+N, cmp3);
        for(int i = 0;  i< N; i++){
            cout << stu[i].num << ' ' << stu[i].name << ' ' << stu[i].grade << endl;
        }
        //system("pause");
        return 0;
    }
    
    展开全文
  • PTA 模拟EXCEL排序

    2020-07-11 11:22:00
    Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序

    Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。

    输入格式:

    输入的第一行包含两个正整数N(≤10^​5) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。

    输出格式:

    在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。

    输入样例:

    3 1
    000007 James 85
    000010 Amy 90
    000001 Zoe 60

    输出样例:

    000001 Zoe 60
    000007 James 85
    000010 Amy 90

    程序代码:

    #include <cstdio>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    // 定义一个学生结构体
    struct student{
        int num;
        char name[9];
        int score;
    }s[100000];
    // 定义三个排序函数
    // 按学号递增排序
    int s1(student a,student b)
    {
        if(a.num<b.num)
            return 1;
        return 0;
    }
    // 按姓名的非递减字典序排序
    int s2(student a,student b)
    {
        if(strcmp(a.name,b.name)<0)
            return 1;
        else if(strcmp(a.name,b.name)==0 && a.num<b.num)
            return 1;
        return 0;
    }
    // 相同姓名或者相同成绩时,则按他们的学号递增排序
    int s3(student a,student b)
    {
        if(a.score<b.score)
            return 1;
        else if((a.score==b.score) && a.num<b.num)
            return 1;
        return 0;
    }
    
    int main (){
        int N,C;
      	scanf("%d%d",&N,&C);
         for(int i=0;i<N;i++)
            scanf("%d %s %d",&s[i].num,s[i].name,&s[i].score);
      //用c++中内置的的sort排序函数,按照自定义的三种方式排序
         if(C==1)
               sort(s,s+N,s1);
         else if(C==2)
                sort(s,s+N,s2);
         else if(C==3)
               sort(s,s+N,s3);
         for(int i=0;i<N;i++)
               printf("%06d %s %d\n",s[i].num,s[i].name,s[i].score);
        return 0;
    }
    

    本题主要采用C++中的sort函数,自定义排序规则实现排序。

    展开全文
  • pta-模拟EXCEL排序

    2021-01-26 21:30:38
    Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排

    Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。
    输入格式:
    输入的第一行包含两个正整数N(≤10^​5​​) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。
    输出格式:
    在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。
    输入样例:

    3 1
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    

    输出样例:

    000001 Zoe 60
    000007 James 85
    000010 Amy 90
    

    思路:利用sort直接将自定义的类型根据题目的三种要求进行排序。
    技巧:

    ios_base::sync_with_stdio(false);
    	cin.tie(0);
    

    这两行代码可以加快cin和cout的速度。
    完整的AC代码:

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    typedef struct OOO {
    	string xh, nm;
    	int cj;
    }JJ;
    JJ p[100005];
    bool cmp1(JJ a, JJ b) {
    	return a.xh < b.xh;
    }
    bool cmp2(JJ a, JJ b) {
    	if (a.nm == b.nm) {
    		return a.xh < b.xh;
    	}
    	else {
    		return a.nm < b.nm;
    	}
    }
    bool cmp3(JJ a, JJ b) {
    	if (a.cj == b.cj) {
    		return a.xh < b.xh;
    	}
    	else {
    		return a.cj < b.cj;
    	}
    }
    int main() {
    	int n, c;
    	ios_base::sync_with_stdio(false);
    	cin.tie(0);
    	//cout.tie(0);
    	cin >> n >> c;
    	//scanf_s("%d %d", &n, &c);
    	for (int i = 0; i < n; i++) {
    		cin >> p[i].xh >> p[i].nm >> p[i].cj;
    		//scanf_s("%s %s %d", p[i].xh, p[i].nm, &p[i].cj);
    	}
    	if (c == 1) {
    		sort(p, p + n, cmp1);
    	}
    	else if (c == 2) {
    		sort(p, p + n, cmp2);
    	}
    	else {
    		sort(p, p + n, cmp3);
    	}
    	for (int i = 0; i < n; i++) {
    		cout << p[i].xh << " " << p[i].nm << " " << p[i].cj << endl;
    	}
    	return 0;
    }
    

    在这里插入图片描述
    另外的一种AC代码:

    #include <cstdio>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    // 定义一个学生结构体
    struct student{
        int num;
        char name[9];
        int score;
    }s[100000];
    // 定义三个排序函数
    // 按学号递增排序
    int s1(student a,student b)
    {
        if(a.num<b.num)
            return 1;
        return 0;
    }
    // 按姓名的非递减字典序排序
    int s2(student a,student b)
    {
        if(strcmp(a.name,b.name)<0)
            return 1;
        else if(strcmp(a.name,b.name)==0 && a.num<b.num)
            return 1;
        return 0;
    }
    // 相同姓名或者相同成绩时,则按他们的学号递增排序
    int s3(student a,student b)
    {
        if(a.score<b.score)
            return 1;
        else if((a.score==b.score) && a.num<b.num)
            return 1;
        return 0;
    }
    
    int main (){
        int N,C;
      	scanf("%d%d",&N,&C);
         for(int i=0;i<N;i++)
            scanf("%d %s %d",&s[i].num,s[i].name,&s[i].score);
      //用c++中内置的的sort排序函数,按照自定义的三种方式排序
         if(C==1)
               sort(s,s+N,s1);
         else if(C==2)
                sort(s,s+N,s2);
         else if(C==3)
               sort(s,s+N,s3);
         for(int i=0;i<N;i++)
               printf("%06d %s %d\n",s[i].num,s[i].name,s[i].score);
        return 0;
    }
    
    

    在这里插入图片描述

    展开全文
  • 7-1 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,...
  • 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行...
  • 7-37 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10^5​​ ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每...
  • 7-2 模拟EXCEL排序 (25分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每...
  • Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序
  • Excel 可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个...N行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2 时,按姓名的非递减字典序排序;当 C
  • Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排
  • Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排
  • Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序
  • Excel 可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个... N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2 时,按姓名的非递减字典序排序;当
  • 7-19 模拟EXCEL排序 (25分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10e​5​​ ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每...
  • Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。...N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排
  • 7-22 模拟EXCEL排序 (25分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10^5 ​​ ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每...
  • Excel新手完全教程

    2014-10-08 23:13:58
    5. 在EXCEL中选择整个单元格范围 10 6. 快速移动/复制单元格 10 7. 快速修改单元格式次序 10 8. 彻底清除单元格内容 11 9. 选择单元格 11 10. 为工作表命名 11 11. 一次性打开多个工作簿 12 12. 快速切换工作簿 12 ...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如果你要A3的前面插入100行 请问如何每隔30行粘贴一新行 工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel中插入空白行 快速删除工作表中的空行快速删除空行一...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    【按颜色排序】:让Excel 2003也可以按背景色排序数据,2007或者2010用户不需要使用 【返回首页】:配合建立工作表目录工具使用,可以任何工作表中瞬间返回第一个工作表 <══════┤ 函数功能介绍 ├════...
  • Excel VBA技巧实例手册

    2016-07-28 22:29:39
    目录 第1篇 ExcelVBA基础 第1章 了解Excel宏 1.1 创建宏 技巧001显示“开发工具”选项卡 ...第10章 自定义Excel2007界面 第4篇 数据库和其他应用篇 第11章 Excel和ADO 第12章 文件和文件夹操作技巧
  • [tr][td]10[/td][td][align=right]1[/align][/td][td]张[/td][td][align=right]82[/align][/td][td][align=right]59[/align][/td][td][align=right]85[/align][/td][td][align=right]43[/align]...
  • 如果你要A3的前面插入100行 请问如何每隔30行粘贴一新行 工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel中插入空白行 快速删除工作表中的空行快速删除空行一...
  • 5. 在EXCEL中选择整个单元格范围 9 6. 快速移动/复制单元格 9 7. 快速修改单元格式次序 9 8. 彻底清除单元格内容 10 9. 选择单元格 10 10. 为工作表命名 11 11. 一次性打开多个工作簿 11 12. 快速切换工作簿 13 13. ...
  • EXCEL百宝箱8.0终极版

    2011-11-05 16:48:02
    【按颜色排序】:让Excel 2003也可以按背景色排序数据,2007或者2010用户不需要使用 【返回首页】:配合建立工作表目录工具使用,可以任何工作表中瞬间返回第一个工作表 <══════════════════┤ ...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    作了18个分类, 而函数向导对话框中也生成100个左右新的函数,用于扩展Excel的计算功能。且所有功能都通用于 Excel 2002、2003和2007、2010。支持中英文显示与繁简体操作系统、拥有20多款华丽的皮肤界面,支持Excel...
  • 10章 使用Microsoft MapPoint将Excel 数据显示地图中 245 10.1 绘制地理数据 245 10.2 在Excel中创建地图 246 10.3 地图上使用图表 249 10.4 使用其他地图样式来显示数据 251 10.5 下一步 253 ...
  • 10章 使用Microsoft MapPoint将Excel 数据显示地图中 245 10.1 绘制地理数据 245 10.2 在Excel中创建地图 246 10.3 地图上使用图表 249 10.4 使用其他地图样式来显示数据 251 10.5 下一步 253 ...
  • 10章 使用Microsoft MapPoint将Excel 数据显示地图中 245 10.1 绘制地理数据 245 10.2 在Excel中创建地图 246 10.3 地图上使用图表 249 10.4 使用其他地图样式来显示数据 251 10.5 下一步 253 ...
  • 10章 使用Microsoft MapPoint将Excel 数据显示地图中 245 10.1 绘制地理数据 245 10.2 在Excel中创建地图 246 10.3 地图上使用图表 249 10.4 使用其他地图样式来显示数据 251 10.5 下一步 253 ...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 208
精华内容 83
关键字:

excel排序100在10后