1 条题解
-
0
C :
#include<stdio.h> int main() { int asd,dsa,a[111],b[111],i,j,t,n; scanf("%d%d",&asd,&dsa); n=asd+dsa; for(i=0;i<n;i++) { scanf("%d%d",&a[i],&b[i]); } for(i=0;i<n;i++) { for(j=i;j<n;j++) { if(a[j]<a[i]) { t=a[j]; a[j]=a[i]; a[i]=t; t=b[j]; b[j]=b[i]; b[i]=t; } } } for(i=0;i<n;i++) { printf("%d %d\n",a[i],b[i]); } return 0; }
C++ :
#include <stdio.h> #include <stdlib.h> struct node { int num, score; struct node * next; }; int main() { struct node *heada, *taila, *headb, *tailb, *head, *tail, *p; heada = taila = headb = tailb = NULL; int n, m, i; scanf("%d %d", &n, &m); /* 读入a链表中的n个学生信息 */ for (i = 0;i < n;i++) { p = (struct node *)malloc(sizeof(struct node)); scanf("%d %d", &p->num, &p->score); if (heada == NULL) { heada = taila = p; } else { taila->next = p; taila = p; } } taila->next = NULL; /* 读入b链表中的m个学生信息 */ for (i = 0;i < m;i++) { p = (struct node *)malloc(sizeof(struct node)); scanf("%d %d", &p->num, &p->score); if (headb == NULL) { headb = tailb = p; } else { tailb->next = p; tailb = p; } } tailb->next = NULL; /* 合并两个链表 */ head = tail = NULL; while (heada != NULL && headb != NULL) { /* 令p指向当前a和b两个链表头中较小的一个 */ if (heada->num < headb->num) { p = heada; heada = heada->next; } else { p = headb; headb = headb->next; } /* 将p指向的节点放到合并后的链表尾部 */ if (head == NULL) { head = tail = p; } else { tail->next = p; tail = p; } } /* 将仍未合并完的链表合并 */ while (heada != NULL) { if (head == NULL) { head = tail = heada; } else { tail->next = heada; tail = heada; } heada = heada->next; } while (headb != NULL) { if (head == NULL) { head = tail = headb; } else { tail->next = headb; tail = headb; } headb = headb->next; } if (tail != NULL) tail->next = NULL; /* 将合并后的链表进行输出 */ p = head; while (p != NULL) { printf("%d %d\n", p->num, p->score); p = p->next; } return 0; }
Java :
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int a = s.nextInt() ; int b = s.nextInt() ; if(a>=0&&a<=100&&b>=0&&b<=100){ List<Student> A = new ArrayList<Student>() ; // List<Student> temp = new ArrayList<Student>() ; List<Student> B = new ArrayList<Student>() ; for (int i = 0; i < a; i++) { Student stu = new Student() ; int n = s.nextInt() ; int m = s.nextInt() ; stu.num = n ; stu.score = m ; A.add(stu) ; } for (int i = 0; i < b; i++) { Student stu = new Student() ; int n = s.nextInt() ; int m = s.nextInt() ; stu.num = n ; stu.score = m ; B.add(stu) ; } A.addAll(B) ; Collections.sort(A); for (Student student : A) { System.out.println(student.num+" "+student.score); } // for (Student student : A) { // temp.add(student) ; // } // for (Student student : temp) { // for (Student student2 : B) { // if(student2.num==student.num){ // A.remove(student) ; // } // } // } // System.out.println(A.size()); // for (Student student : A) { // System.out.println(student.num+" "+student.score); // } } } } class Student implements Comparable{ int num ; int score ; @Override public int compareTo(Object o) { Student s = (Student)o ; if(this.num>s.num) return 1 ; else if(this.num==s.num) return 0; else return -1 ; } }
- 1
信息
- ID
- 1387
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者