北航2006年计算机复试上机
2017-03-05 19:16
211 查看
第一题 写一个函数 set_same(int a[],int len1,int b[],int len2) 判断数组a和b所含元素是否都相同,就是说,如果把a和b所含元素按成两个集合 判断是两个集合是否相等 既然是集合 那就不考虑重复元素和顺序了
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<malloc.h>
int set_name(int a[],int len1,int b[],int len2){
int i,j;
int flag1=0,flag2=0;
for(i=0;i<len1;i++){
for(j=0;j<len2;j++){
if(a[i] == b[j]){
flag1++;
break;
}
}
}
for(i=0;i<len2;i++){
for(j=0;j<len1;j++){
if(b[i] == a[j]){
flag2++;
break;
}
}
}
if(flag1 == len1 && flag2 == len2) return 1;
else return 0;
}
int main(){
int n,m;
int i,j;
scanf("%d %d",&n,&m);
int* a = (int *)malloc(sizeof(int)* n);
int* b = (int *)malloc(sizeof(int) * m);
for(i=0;i<n;i++){
scanf("%d",a+i);
}
for(i=0;i<m;i++){
scanf("%d",b+i);
}
int s = set_name(a,n,b,m);
if(s) printf("YES\n");
else printf("NO\n");
return 0;
}
第二题
用结构体,c++用sort对成绩排序即可。
#include<stdio.h>
#include<malloc.h>
#include<algorithm>
using namespace std;
typedef struct student{
char name[100];
double grade;
bool operator < (const student & a) const{
return grade > a.grade;
}
}student;
int main(){
int n;
int i;
scanf("%d",&n);
student stu[100];
for(i=0;i<n;i++){
scanf("%s %llf",stu[i].name,&stu[i].grade);
}
sort(stu,stu+n);
for(i=0;i<n;i++){
printf("%s %.2llf\n",stu[i].name,stu[i].grade);
}
return 0;
}
相关文章推荐
- 北航2007年计算机复试上机
- 北航2008年计算机复试上机
- 北航2009年计算机复试上机
- 北京理工大学计算机专业研究生复试上机试题(2000-2011)
- 2006年北理复试上机题
- 后缀子串排序(后缀数组) - 上海交通大学计算机历年考研复试上机题
- 清华2006年复试上机题:二叉树遍历(不构建树的解法)
- 2006年浙大复试上机题火星A+B
- 浙江大学2006年复试上机题 解题报告
- 二叉查找树(华中科技大学计算机考研复试上机题)
- 计算机研究生复试上机题目:顺时针螺旋矩阵简单实现
- 北理工2012年计算机研究生复试上机题
- 北航研究生复试2008上机第三题:字符串匹配
- 北航研究生复试2010上机第三题:数组是否相同
- 北航研究生复试2011上机第三题:显示省略
- 北航研究生复试2012上机第三题:统计关键字出现的位置
- 2008 BUPT 计算机复试上机题
- 2014北邮计算机考研复试上机题解(上午+下午)
- 2006年清华大学计算机复试机试真题(求N的阶乘 N <= 1000)
- 华中科技大学_2006保研___考研计算机_复试上机