首页 > 学院 > 开发设计 > 正文

北航2006年计算机复试上机

2019-11-06 07:05:43
字体:
来源:转载
供稿:网友

 第一题  写一个函数 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;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表