0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paizaラーニングレベルアップ問題集の「構造体」をやってみた

Posted at

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)
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?