我们都知道C/C++里面的结构体在储存数据的时候很方便,但是在Java中没有Struct,但是我们可以用类来实现C语言中结构体的功功能。
先来看C语言中的吧:
#include<bits/stdc++.h>
using namespace std;
struct sdut{
int x;
char b[100];
}a[100];//a;定义结构体数组或结构体变量;
int main() {
for(int i=0;i<n;i++) {
cin>>a[i].x;
cin>>a[i].b; ///输入数据;
}
}
Java中:
import java.util.*;
class p{
int x;
String s;
}
public class Main{
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
int n;
n=cin.nextInt();
p m[]=new p[100];///这里m数组就相当于C语言中的那个结构体数组a[100];
/* 或者 p a=new p();定义单个结构体变量;*/
for(int i=0;i<100;i++) {
b[i]=new p();///这条语句一定要加上;不然有错误;
}
for(int i=0;i<n;i++) {
b[i].s=cin.next();///输入数据;
b[i].x=cin.nextInt();
/* a.s=cin.next();
a.x=cin.nextInt();
*/
}
}
}
Eg:可以拿这道题练练手
附代码:
import java.util.*;
class p{
int x;
String s;
}
public class Main{
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
int n;
n=cin.nextInt();
p m[]=new p[100];
p b[]=new p[100];
for(int i=0;i<100;i++) {
b[i]=new p();
}
for(int i=0;i<n;i++) {
b[i].s=cin.next();
b[i].x=cin.nextInt();
}
for(int i=0;i<n;i++) {
for(int j=0;j<n-i-1;j++) {
if(b[j].x<b[j+1].x) {
m[j]= b[j];
b[j]=b[j+1];
b[j+1]=m[j];
}
}
}
for(int i=0;i<n;i++) {
System.out.println(b[i].s+" "+b[i].x);
}
}
}