paizaラーニングレベルアップ問題集の「構造体」をやってみました。
問題
構造体の作成
構造体の検索
構造体の整列
構造体の更新
C
構造体の作成
#include <stdio.h>
typedef struct {
char nickname[21];
int old;
char birth[6];
char state[21];
} User;
int main() {
int n;
scanf("%d", &n);
User users[n];
for (int i = 0; i < n; i++) {
scanf("%s %d %s %s", users[i].nickname, &users[i].old, users[i].birth, users[i].state);
}
for (int i = 0; i < n; i++) {
printf("User{\n");
printf("nickname : %s\n", users[i].nickname);
printf("old : %d\n", users[i].old);
printf("birth : %s\n", users[i].birth);
printf("state : %s\n", users[i].state);
printf("}\n");
}
return 0;
}
構造体の検索
#include <stdio.h>
typedef struct {
char name[21];
int old;
char birth[6];
char state[21];
} Student;
int main() {
int n;
scanf("%d", &n);
Student students[n];
for (int i = 0; i < n; i++) {
scanf("%s %d %s %s", students[i].name, &students[i].old, students[i].birth, students[i].state);
}
int k;
scanf("%d", &k);
for (int i = 0; i < n; i++) {
if (students[i].old == k) puts(students[i].name);
}
return 0;
}
構造体の整列
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char nickname[21];
int old;
char birth[6];
char state[21];
} User;
int cmp(const void* a, const void* b) {
User user0 = *(User*) a;
User user1 = *(User*) b;
return user0.old < user1.old ? -1 : user0.old > user1.old;
}
int main() {
int n;
scanf("%d", &n);
User users[n];
for (int i = 0; i < n; i++) {
scanf("%s %d %s %s", users[i].nickname, &users[i].old, users[i].birth, users[i].state);
}
qsort(users, n, sizeof(users[0]), cmp);
for (int i = 0; i < n; i++) {
printf("%s %d %s %s\n", users[i].nickname, users[i].old, users[i].birth, users[i].state);
}
return 0;
}
構造体の更新
#include <stdio.h>
#include <string.h>
typedef struct {
char nickname[21];
int old;
char birth[6];
char state[21];
} User;
int main() {
int n, k;
scanf("%d %d", &n, &k);
User users[n];
for (int i = 0; i < n; i++) {
scanf("%s %d %s %s", users[i].nickname, &users[i].old, users[i].birth, users[i].state);
}
while (k--) {
int a;
char nn[21];
scanf("%d %s", &a, nn);
a -= 1;
strcpy(users[a].nickname, nn);
}
for (int i = 0; i < n; i++) {
printf("%s %d %s %s\n", users[i].nickname, users[i].old, users[i].birth, users[i].state);
}
return 0;
}
C++
構造体の作成
#include <iostream>
#include <vector>
using namespace std;
struct User {
string nickname;
int old;
string birth;
string state;
};
int main() {
int n;
cin >> n;
vector<User> users(n);
for (int i = 0; i < n; i++) {
cin >> users[i].nickname >> users[i].old >> users[i].birth >> users[i].state;
}
for (int i = 0; i < n; i++) {
cout << "User{" << endl;
cout << "nickname : " << users[i].nickname << endl;
cout << "old : " << users[i].old << endl;
cout << "birth : " << users[i].birth << endl;
cout << "state : " << users[i].state << endl;
cout << "}" << endl;
}
return 0;
}
構造体の検索
#include <iostream>
#include <vector>
using namespace std;
struct Student {
string name;
int old;
string birth;
string state;
};
int main() {
int n;
cin >> n;
vector<Student> students(n);
for (int i = 0; i < n; i++) {
cin >> students[i].name >> students[i].old >> students[i].birth >> students[i].state;
}
int k;
cin >> k;
vector<Student>::iterator it = find_if(students.begin(), students.end(), [&k](const Student& s){ return s.old == k; });
if (it != students.end()) {
cout << it->name << endl;
}
return 0;
}
構造体の整列
#include <iostream>
#include <vector>
using namespace std;
struct User {
string nickname;
int old;
string birth;
string state;
};
int main() {
int n;
cin >> n;
vector<User> users(n);
for (int i = 0; i < n; i++) {
cin >> users[i].nickname >> users[i].old >> users[i].birth >> users[i].state;
}
sort(users.begin(), users.end(), [](const User& u0, const User& u1){ return u0.old < u1.old; });
for (User user : users) {
cout << user.nickname << " " << user.old << " " << user.birth << " " << user.state << std::endl;
}
return 0;
}
構造体の更新
#include <iostream>
#include <vector>
using namespace std;
struct User {
string nickname;
int old;
string birth;
string state;
};
int main() {
int n, k;
cin >> n >> k;
vector<User> users(n);
for (int i = 0; i < n; i++) {
cin >> users[i].nickname >> users[i].old >> users[i].birth >> users[i].state;
}
for (int i = 0; i < k; i++) {
int a;
string nn;
cin >> a >> nn;
a -= 1;
users[a].nickname = nn;
}
for (User user : users) {
cout << user.nickname << " " << user.old << " " << user.birth << " " << user.state << std::endl;
}
return 0;
}
C#
構造体の作成
using System;
struct User {
public string nickname;
public int old;
public string birth;
public string state;
}
class Program
{
public static void Main()
{
int n = int.Parse(Console.ReadLine());
User[] users = new User[n];
for (int i = 0; i < n; i++) {
string[] nobs = Console.ReadLine().Split();
users[i].nickname = nobs[0];
users[i].old = int.Parse(nobs[1]);
users[i].birth = nobs[2];
users[i].state = nobs[3];
}
for (int i = 0; i < n; i++) {
Console.WriteLine("User{");
Console.WriteLine("nickname : " + users[i].nickname);
Console.WriteLine("old : " + users[i].old);
Console.WriteLine("birth : " + users[i].birth);
Console.WriteLine("state : " + users[i].state);
Console.WriteLine("}");
}
}
}
構造体の検索
using System;
using System.Linq;
struct Student {
public string name;
public int old;
public string birth;
public string state;
}
class Program
{
public static void Main()
{
int n = int.Parse(Console.ReadLine());
Student[] students = new Student[n];
for (int i = 0; i < n; i++) {
string[] nobs = Console.ReadLine().Split();
students[i].name = nobs[0];
students[i].old = int.Parse(nobs[1]);
students[i].birth = nobs[2];
students[i].state = nobs[3];
}
int k = int.Parse(Console.ReadLine());
var result = students.Where(s => s.old == k);
Console.WriteLine(result.ToArray()[0].name);
}
}
構造体の整列
using System;
using System.Linq;
struct User {
public string nickname;
public int old;
public string birth;
public string state;
}
class Program
{
public static void Main()
{
int n = int.Parse(Console.ReadLine());
User[] users = new User[n];
for (int i = 0; i < n; i++) {
string[] nobs = Console.ReadLine().Split();
users[i].nickname = nobs[0];
users[i].old = int.Parse(nobs[1]);
users[i].birth = nobs[2];
users[i].state = nobs[3];
}
var sorted = users.OrderBy(u => u.old);
foreach (User user in sorted) {
Console.WriteLine($"{user.nickname} {user.old} {user.birth} {user.state}");
}
}
}
構造体の更新
using System;
struct User {
public string nickname;
public int old;
public string birth;
public string state;
}
class Program
{
public static void Main()
{
int[] nk = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
int n = nk[0], k = nk[1];
User[] users = new User[n];
for (int i = 0; i < n; i++) {
string[] nobs = Console.ReadLine().Split();
users[i].nickname = nobs[0];
users[i].old = int.Parse(nobs[1]);
users[i].birth = nobs[2];
users[i].state = nobs[3];
}
for (int i = 0; i < k; i++) {
string[] ann = Console.ReadLine().Split();
int a = int.Parse(ann[0]) - 1;
string nn = ann[1];
users[a].nickname = nn;
}
foreach (User user in users) {
Console.WriteLine($"{user.nickname} {user.old} {user.birth} {user.state}");
}
}
}
Go
構造体の作成
package main
import "fmt"
type User struct {
nickname string
old int
birth string
state string
};
func main() {
var n int
fmt.Scan(&n)
users := make([]User, n)
for i := 0; i < n; i++ {
fmt.Scan(&users[i].nickname, &users[i].old, &users[i].birth, &users[i].state)
}
for i := 0; i < n; i++ {
fmt.Println("User{")
fmt.Println("nickname : " + users[i].nickname)
fmt.Printf("old : %d\n", users[i].old)
fmt.Println("birth : " + users[i].birth)
fmt.Println("state : " + users[i].state)
fmt.Println("}")
}
}
構造体の検索
package main
import "fmt"
type Student struct {
name string
old int
birth string
state string
};
func main() {
var n int
fmt.Scan(&n)
students := make([]Student, n)
for i := 0; i < n; i++ {
fmt.Scan(&students[i].name, &students[i].old, &students[i].birth, &students[i].state)
}
var k int
fmt.Scan(&k)
for i := 0; i < n; i++ {
if (students[i].old == k) {
fmt.Println(students[i].name)
}
}
}
構造体の整列
package main
import (
"fmt"
"sort"
)
type User struct {
nickname string
old int
birth string
state string
};
func main() {
var n int
fmt.Scan(&n)
users := make([]User, n)
for i := 0; i < n; i++ {
fmt.Scan(&users[i].nickname, &users[i].old, &users[i].birth, &users[i].state)
}
sort.Slice(users, func(i, j int) bool {
return users[i].old < users[j].old
})
for i := 0; i < n; i++ {
fmt.Println(users[i].nickname, users[i].old, users[i].birth, users[i].state)
}
}
構造体の更新
package main
import "fmt"
type User struct {
nickname string
old int
birth string
state string
};
func main() {
var n, k int
fmt.Scan(&n, &k)
users := make([]User, n)
for i := 0; i < n; i++ {
fmt.Scan(&users[i].nickname, &users[i].old, &users[i].birth, &users[i].state)
}
for i := 0; i < k; i++ {
var a int
var nn string
fmt.Scan(&a, &nn)
a -= 1
users[a].nickname = nn
}
for i := 0; i < n; i++ {
fmt.Println(users[i].nickname, users[i].old, users[i].birth, users[i].state)
}
}
Java
構造体の作成
import java.util.*;
class User {
public String nickname;
public int old;
public String birth;
public String state;
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
User[] users = new User[n];
for (int i = 0; i < n; i++) {
users[i] = new User();
users[i].nickname = sc.next();
users[i].old = sc.nextInt();
users[i].birth = sc.next();
users[i].state = sc.next();
}
sc.close();
for (int i = 0; i < n; i++) {
System.out.println("User{");
System.out.println("nickname : " + users[i].nickname);
System.out.println("old : " + users[i].old);
System.out.println("birth : " + users[i].birth);
System.out.println("state : " + users[i].state);
System.out.println("}");
}
}
}
構造体の検索
import java.util.*;
class Student {
public String name;
public int old;
public String birth;
public String state;
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Student[] students = new Student[n];
for (int i = 0; i < n; i++) {
students[i] = new Student();
students[i].name = sc.next();
students[i].old = sc.nextInt();
students[i].birth = sc.next();
students[i].state = sc.next();
}
int k = sc.nextInt();
sc.close();
Optional<Student> result = Arrays.stream(students).filter(s -> s.old == k).findFirst();
result.ifPresent(student -> {
System.out.println(student.name);
});
}
}
構造体の整列
import java.util.*;
class User {
public String nickname;
public int old;
public String birth;
public String state;
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
User[] users = new User[n];
for (int i = 0; i < n; i++) {
users[i] = new User();
users[i].nickname = sc.next();
users[i].old = sc.nextInt();
users[i].birth = sc.next();
users[i].state = sc.next();
}
sc.close();
// Arrays.sort(users, Comparator.comparingInt(u -> u.old));
Arrays.sort(users, (a, b) -> Integer.compare(a.old, b.old));
for (User user : users) {
System.out.println(user.nickname + ' ' + user.old + ' ' + user.birth + ' ' + user.state);
}
}
}
構造体の更新
import java.util.*;
class User {
public String nickname;
public int old;
public String birth;
public String state;
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
User[] users = new User[n];
for (int i = 0; i < n; i++) {
users[i] = new User();
users[i].nickname = sc.next();
users[i].old = sc.nextInt();
users[i].birth = sc.next();
users[i].state = sc.next();
}
for (int i = 0; i < k; i++) {
int a = sc.nextInt() - 1;
String nn = sc.next();
users[a].nickname = nn;
}
sc.close();
for (User user : users) {
System.out.println(user.nickname + ' ' + user.old + ' ' + user.birth + ' ' + user.state);
}
}
}
JavaScript
構造体の作成
const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n');
const N = Number(lines.shift());
const users = [];
for (var i = 0; i < N; i++) {
const [n, o, b, s] = lines.shift().split(' ');
users.push({nickname: n, old: Number(o), birth: b, state: s});
}
for (let i = 0; i < N; i++) {
console.log("User{");
console.log("nickname : " + users[i].nickname);
console.log("old : " + users[i].old);
console.log("birth : " + users[i].birth);
console.log("state : " + users[i].state);
console.log("}");
}
構造体の検索
const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n');
const N = Number(lines.shift());
const students = [];
for (let i = 0; i < N; i++) {
const [n, o, b, s] = lines.shift().split(' ');
students.push({name: n, old: Number(o), birth: b, state: s});
}
const k = Number(lines.shift());
const result = students.find(s => s.old === k);
console.log(result.name);
構造体の整列
const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n');
const N = Number(lines.shift());
const users = [];
for (let i = 0; i < N; i++) {
const [n, o, b, s] = lines.shift().split(' ');
users.push({nickname: n, old: Number(o), birth: b, state: s});
}
users.sort((a, b) => a.old - b.old);
for (let user of users) console.log(user.nickname, user.old, user.birth, user.state);
構造体の更新
const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n');
const [N, k] = lines.shift().split(' ').map(Number);
const users = [];
for (let i = 0; i < N; i++) {
const [n, o, b, s] = lines.shift().split(' ');
users.push({nickname: n, old: Number(o), birth: b, state: s});
}
for (let i = 0; i < k; i++) {
const [a, nn] = lines.shift().split(' ');
users[a-1].nickname = nn;
}
for (let user of users) console.log(user.nickname, user.old, user.birth, user.state);
Kotlin
構造体の作成
data class User(
val nickname: String,
val old: Int,
val birth: String,
val state: String
)
fun main() {
val users = mutableListOf<User>()
repeat(readln().toInt()) {
val (n, o, b, s) = readln().split(' ')
users.add(User(n, o.toInt(), b, s))
}
for (user in users) {
println("User{")
println("nickname : " + user.nickname)
println("old : " + user.old)
println("birth : " + user.birth)
println("state : " + user.state)
println("}")
}
}
構造体の検索
data class Student(
val name: String,
val old: Int,
val birth: String,
val state: String
)
fun main() {
val students = mutableListOf<Student>()
repeat(readln().toInt()) {
val (n, o, b, s) = readln().split(' ')
students.add(Student(n, o.toInt(), b, s))
}
val k = readln().toInt()
val result = students.find { it.old == k }
println(result!!.name)
}
構造体の整列
data class User(
val nickname: String,
val old: Int,
val birth: String,
val state: String
)
fun main() {
val users = mutableListOf<User>()
repeat(readln().toInt()) {
val (n, o, b, s) = readln().split(' ')
users.add(User(n, o.toInt(), b, s))
}
users.sortBy { it.old }
for (user in users) {
println(user.nickname + ' ' + user.old + ' ' + user.birth + ' ' + user.state)
}
}
構造体の更新
data class User(
var nickname: String,
val old: Int,
val birth: String,
val state: String
)
fun main() {
val (N, K) = readln().split(' ').map { it.toInt() }
val users = mutableListOf<User>()
repeat(N) {
val (n, o, b, s) = readln().split(' ')
users.add(User(n, o.toInt(), b, s))
}
repeat (K) {
val (a, nn) = readln().split(' ')
users[a.toInt()-1].nickname = nn
}
for (user in users) {
println(user.nickname + ' ' + user.old + ' ' + user.birth + ' ' + user.state)
}
}
PHP
構造体の作成
<?php
class User {
public string $nickname;
public int $old;
public string $birth;
public string $state;
}
$N = intval(fgets(STDIN));
$users = [];
for ($i = 0; $i < $N; $i++) {
[$n, $o, $b, $s] = explode(' ', trim(fgets(STDIN)));
$users[] = new User();
$users[$i]->nickname = $n;
$users[$i]->old = intval($o);
$users[$i]->birth = $b;
$users[$i]->state = $s;
}
for ($i = 0; $i < $N; $i++) {
echo "User{", PHP_EOL;
echo "nickname : {$users[$i]->nickname}", PHP_EOL;
echo "old : {$users[$i]->old}", PHP_EOL;
echo "birth : {$users[$i]->birth}", PHP_EOL;
echo "state : {$users[$i]->state}", PHP_EOL;
echo "}", PHP_EOL;
}
?>
構造体の検索
<?php
class Student {
public string $name;
public int $old;
public string $birth;
public string $state;
}
$N = intval(fgets(STDIN));
$students = [];
for ($i = 0; $i < $N; $i++) {
[$n, $o, $b, $s] = explode(' ', trim(fgets(STDIN)));
$students[] = new Student();
$students[$i]->name = $n;
$students[$i]->old = intval($o);
$students[$i]->birth = $b;
$students[$i]->state = $s;
}
$k = intval(fgets(STDIN));
foreach ($students as $student) {
if ($student->old === $k) {
echo $student->name, PHP_EOL;
}
}
?>
構造体の整列
<?php
class User {
public string $nickname;
public int $old;
public string $birth;
public string $state;
}
$N = intval(fgets(STDIN));
$users = [];
for ($i = 0; $i < $N; $i++) {
[$n, $o, $b, $s] = explode(' ', trim(fgets(STDIN)));
$users[] = new User();
$users[$i]->nickname = $n;
$users[$i]->old = intval($o);
$users[$i]->birth = $b;
$users[$i]->state = $s;
}
usort($users, fn($a, $b) => $a->old <=> $b->old);
foreach ($users as $user) {
echo "{$user->nickname} {$user->old} {$user->birth} {$user->state}", PHP_EOL;
}
?>
構造体の更新
<?php
class User {
public string $nickname;
public int $old;
public string $birth;
public string $state;
}
[$N, $K] = array_map("intval", explode(' ', fgets(STDIN)));
$users = [];
for ($i = 0; $i < $N; $i++) {
[$n, $o, $b, $s] = explode(' ', trim(fgets(STDIN)));
$users[] = new User();
$users[$i]->nickname = $n;
$users[$i]->old = intval($o);
$users[$i]->birth = $b;
$users[$i]->state = $s;
}
for ($i = 0; $i < $K; $i++) {
[$a, $nn] = explode(' ', trim(fgets(STDIN)));
$users[intval($a)-1]->nickname = $nn;
}
foreach ($users as $user) {
echo "{$user->nickname} {$user->old} {$user->birth} {$user->state}", PHP_EOL;
}
?>
Perl
構造体の作成
my $N = int(<STDIN>);
my @users;
for (1..$N) {
my ($n, $o, $b, $s) = split ' ', <STDIN>;
chomp($s);
push @users, { nickname => $n, old => int($o), birth => $b, state => $s };
}
for (my $i = 0; $i < $N; $i++) {
print "User{", $/;
print "nickname : $users[$i]->{nickname}", $/;
print "old : $users[$i]->{old}", $/;
print "birth : $users[$i]->{birth}", $/;
print "state : $users[$i]->{state}", $/;
print "}", $/;
}
構造体の検索
use List::Util qw(first);
my $n = int(<STDIN>);
my @students;
for (1..$n) {
my ($n, $o, $b, $s) = split ' ', <STDIN>;
chomp($s);
push @students, { name => $n, old => int($o), birth => $b, state => $s };
}
my $k = int(<STDIN>);
my $found = first { $_->{old} == $k } @students;
print $found->{name}, $/;
構造体の整列
my $n = int(<STDIN>);
my @users;
for (1..$n) {
my ($n, $o, $b, $s) = split ' ', <STDIN>;
chomp($s);
push @users, { nickname => $n, old => int($o), birth => $b, state => $s };
}
foreach my $user (sort { $a->{old} <=> $b->{old} } @users) {
print "$user->{nickname} $user->{old} $user->{birth} $user->{state}", $/;
}
構造体の更新
my ($n, $k) = map { int($_) } split ' ', <STDIN>;
my @users;
for (1..$n) {
my ($n, $o, $b, $s) = split ' ', <STDIN>;
chomp($s);
push @users, { nickname => $n, old => int($o), birth => $b, state => $s };
}
for (1..$k) {
my ($a, $nn) = split ' ', <STDIN>;
$a = int($a) - 1;
chomp($nn);
$users[$a]->{nickname} = $nn;
}
foreach my $user (@users) {
print "$user->{nickname} $user->{old} $user->{birth} $user->{state}", $/;
}
Python3
構造体の作成
from dataclasses import dataclass
@dataclass
class User:
nickname: str
old: int
birth: str
state: str
users = [User(nickname=n, old=int(o), birth=b, state=s) for n, o, b, s in [input().split() for _ in range(int(input()))]]
for user in users:
print("User{")
print("nickname : " + user.nickname)
print("old : " + str(user.old))
print("birth : " + str(user.birth))
print("state : " + str(user.state))
print("}")
構造体の検索
from dataclasses import dataclass
@dataclass
class Student:
name: str
old: int
birth: str
state: str
students = [Student(name=n, old=int(o), birth=b, state=s) for n, o, b, s in [input().split() for _ in range(int(input()))]]
k = int(input())
student = next((s for s in students if s.old == k), None)
print(student.name)
構造体の整列
from dataclasses import dataclass
@dataclass
class User:
nickname: str
old: int
birth: str
state: str
users = [User(nickname=n, old=int(o), birth=b, state=s) for n, o, b, s in [input().split() for _ in range(int(input()))]]
users.sort(key=lambda u: u.old)
for user in users:
print(user.nickname, user.old, user.birth, user.state)
構造体の更新
from dataclasses import dataclass
@dataclass
class User:
nickname: str
old: int
birth: str
state: str
N, K = map(int, input().split())
users = [User(nickname=n, old=int(o), birth=b, state=s) for n, o, b, s in [input().split() for _ in range(N)]]
for _ in range(K):
a, nn = input().split()
a = int(a) - 1
users[a].nickname = nn
for user in users:
print(user.nickname, user.old, user.birth, user.state)
Ruby
構造体の作成
User = Struct.new(:nickname, :old, :birth, :state)
users = []
gets.to_i.times do
n, o, b, s = gets.chomp.split
users << User.new(n, o.to_i, b, s)
end
users.each do |user|
puts "User{"
puts "nickname : " + user.nickname
puts "old : " + user.old.to_s
puts "birth : " + user.birth
puts "state : " + user.state
puts "}"
end
構造体の検索
Student = Struct.new(:name, :old, :birth, :state)
students = []
gets.to_i.times do
n, o, b, s = gets.chomp.split
students << Student.new(n, o.to_i, b, s)
end
k = gets.to_i
student = students.find { |s| s.old == k }
puts student.name
構造体の整列
User = Struct.new(:nickname, :old, :birth, :state)
users = []
gets.to_i.times do
n, o, b, s = gets.chomp.split
users << User.new(n, o.to_i, b, s)
end
users.sort_by { |u| u.old }.each do |user|
puts "#{user.nickname} #{user.old} #{user.birth} #{user.state}"
end
構造体の更新
User = Struct.new(:nickname, :old, :birth, :state)
N, K = gets.split.map(&:to_i)
users = []
N.times do
n, o, b, s = gets.chomp.split
users << User.new(n, o.to_i, b, s)
end
K.times do
a, nn = gets.chomp.split
a = a.to_i - 1
users[a].nickname = nn
end
users.each do |user|
puts "#{user.nickname} #{user.old} #{user.birth} #{user.state}"
end
Scala
構造体の作成
import scala.io.StdIn._
case class User(nickname: String, old: Int, birth: String, state: String)
object Main extends App{
val users = Array.fill(readInt()) {
val Array(n, o, b, s) = readLine().split(" ")
User(n, o.toInt, b, s)
}
for (user <- users) {
println("User{")
println("nickname : " + user.nickname)
println("old : " + user.old)
println("birth : " + user.birth)
println("state : " + user.state)
println("}")
}
}
構造体の検索
import scala.io.StdIn._
case class Student(name: String, old: Int, birth: String, state: String)
object Main extends App{
val students = Array.fill(readInt()) {
val Array(n, o, b, s) = readLine().split(" ")
Student(n, o.toInt, b, s)
}
val k = readInt()
val found = students.find { _.old == k }
println(found.get.name)
}
構造体の整列
import scala.io.StdIn._
case class User(nickname: String, old: Int, birth: String, state: String)
object Main extends App{
val users = Array.fill(readInt()) {
val Array(n, o, b, s) = readLine().split(" ")
User(n, o.toInt, b, s)
}
for (user <- users.sortBy(_.old)) {
println(user.nickname + ' ' + user.old + ' ' + user.birth + ' ' + user.state)
}
}
構造体の更新
import scala.io.StdIn._
import scala.collection.mutable.ArrayBuffer
case class User(var nickname: String, old: Int, birth: String, state: String)
object Main extends App{
val Array(m, k) = readLine().split(' ').map { _.toInt }
val users = Array.fill(m) {
val Array(n, o, b, s) = readLine().split(" ")
User(n, o.toInt, b, s)
}
for (_ <- 0 until k) {
val Array(tmp, nn) = readLine().split(' ')
val a = tmp.toInt - 1
users(a).nickname=nn
}
for (user <- users) {
println(user.nickname + ' ' + user.old + ' ' + user.birth + ' ' + user.state)
}
}
Swift
構造体の作成
struct User {
var nickname: String
var old: Int
var birth: String
var state: String
}
var users: [User] = []
for _ in 0..<Int(readLine()!)! {
let nobs = readLine()!.split(separator: " ")
let (n, o, b, s) = (String(nobs[0]), Int(nobs[1])!, String(nobs[2]), String(nobs[3]))
users.append(User(nickname: n, old: o, birth: b, state: s))
}
for user in users {
print("User{")
print("nickname : " + user.nickname)
print("old : " + String(user.old))
print("birth : " + user.birth)
print("state : " + user.state)
print("}")
}
構造体の検索
struct Student {
var name: String
var old: Int
var birth: String
var state: String
}
var students: [Student] = []
for _ in 0..<Int(readLine()!)! {
let nobs = readLine()!.split(separator: " ")
let (n, o, b, s) = (String(nobs[0]), Int(nobs[1])!, String(nobs[2]), String(nobs[3]))
students.append(Student(name: n, old: o, birth: b, state: s))
}
let k = Int(readLine()!)!
if let found = students.first(where: { $0.old == k }) {
print(found.name)
}
構造体の整列
struct User {
var nickname: String
var old: Int
var birth: String
var state: String
}
var users: [User] = []
for _ in 0..<Int(readLine()!)! {
let nobs = readLine()!.split(separator: " ")
let (n, o, b, s) = (String(nobs[0]), Int(nobs[1])!, String(nobs[2]), String(nobs[3]))
users.append(User(nickname: n, old: o, birth: b, state: s))
}
users.sort { $0.old < $1.old }
for user in users {
print(user.nickname, user.old, user.birth, user.state)
}
構造体の更新
struct User {
var nickname: String
var old: Int
var birth: String
var state: String
}
let nk = readLine()!.split(separator: " ").compactMap { Int($0) }
let (N, K) = (nk[0], nk[1])
var users: [User] = []
for _ in 0..<N {
let nobs = readLine()!.split(separator: " ")
let (n, o, b, s) = (String(nobs[0]), Int(nobs[1])!, String(nobs[2]), String(nobs[3]))
users.append(User(nickname: n, old: o, birth: b, state: s))
}
for _ in 0..<K {
let ann = readLine()!.split(separator: " ")
let (a, nn) = (Int(ann[0])! - 1, String(ann[1]))
users[a].nickname = nn
}
for user in users {
print(user.nickname, user.old, user.birth, user.state)
}