栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1015 德才论

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1015 德才论

1.结构体数组与函数传参

2.二维数组与函数传参(第二维大小不能省略)

3.在C99标准中不允许将字符串(实际上是一个指针变量) 赋值给数组{可以直接定义/用strcpy函数/memset}

4.字符串不能直接比大小 要用strcmp函数

5.德才排名制信息点漏了

6.oj上可以 编译器上却不行 Dev C++怎么回事呀 不懂 (因为数组输入加了地址符,不应该加的)

7.有两个测试超时了 (快排)

#include

struct student
{
	char s[9];
	int d;
	int c;
	int sum;
};

int main()
{
	int N,L,H;
	int xh[4][100000],cnt[4];
	scanf("%d %d %d",&N,&L,&H);
	
	struct student stu[N];
	struct student *p=stu;
	
	void inputandsort(int N,struct student stu[],int xh[][100000],int cnt[],int H,int L);
	void paixu(struct student stu[],int xh[][100000],int cnt[]);
	
	inputandsort(N,p,xh,cnt,H,L);
    
	paixu(p,xh,cnt);

    printf("%dn",cnt[0]+cnt[1]+cnt[2]+cnt[3]);
    
    for(int i=0; i<4; i++){
    	for(int j=0; j= L && stu[i].c >= L)
		{
			if( stu[i].d >= H && stu[i].c >= H ) xh[0][cnt[0]++]=i;
		    else if( stu[i].d >= H ) xh[1][cnt[1]++] = i;
	    	else if( stu[i].d > stu[i].c ) xh[2][cnt[2]++] = i;
	    	else if( stu[i].d >= L && stu[i].c >= L ) xh[3][cnt[3]++] = i;
		}
		
	}
}

void paixu(struct student stu[],int xh[][100000],int cnt[])
{
	printf("enter!");
	int i,j,k,t,m;
	for(i=0 ; i<4; i++)
	{
		for(j=0 ; j stu[xh[i][m]].sum) m=k;
				if(stu[xh[i][k]].sum = stu[xh[i][m]].sum && stu[xh[i][k]].s < stu[xh[i][m]].s) m=k; 
			}
			if(m!=j) {
				t=xh[i][j];xh[i][j]=xh[i][m];xh[i][m]=t;
			}
		}
	}

}

贴一个

int cmp(const void *a,const void *b)
{
     return *(类型*)a-*(类型*)b;(升序)
     //return *(类型*)b-*(类型*)a;(降序)
}
int main()
{
     qsort(数组,数组长度,sizeof(数组类型),cmp);
}
1
2
3
4
5
6
7
8
9
#include
#include

typedef struct
{
    int number,d,c,f;
}ks;

int cmp(const void *a,const void *b)
{
    ks k1=*(ks *)a;
    ks k2=*(ks *)b;
    if(k1.f!=k2.f) return k1.f-k2.f;//先对考生的等级进行排序
    else if((k1.d+k1.c)!=(k2.d+k2.c)) return (k2.d+k2.c)-(k1.d+k1.c);//按总分排序
    else if(k1.d!=k2.d) return k2.d-k1.d;//如果总分也相同就按德分进行排序
    else return k1.number-k2.number;//最后按照名字排序
}
int main()
{
    int N,h,l,count=0;
    scanf("%d%d%d",&N,&l,&h);
    ks k[N];
    for(int i=0;i=l&&k[i].c>=l)//对德才分都高于最底线的进行等级的划分
        {
            count++;//达标人数
            if(k[i].d>=h&&k[i].c>=h) k[i].f=1;//德才分都高于高分线
            else if(k[i].d>=h) k[i].f=2;//德分高于高分线
            else if(k[i].d>=k[i].c) k[i].f=3;//德分高于才分
            else k[i].f=4;//其他情况
        }
        else k[i].f=5;没超过分数线
    }
    qsort(k,N,sizeof(ks),cmp);
    printf("%dn",count);
    for(int i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/289409.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号