In letzter Zeit sind die folgenden Programmierlern- / Wettbewerbsprogrammierungsseiten populär geworden.
Deshalb habe ich es ein wenig versucht, also werde ich ein Memorandum machen und notieren, was ich recherchiert und studiert habe.
Verarbeitung zum Speichern jeder Eingabezeile in einem Array wie unten gezeigt.
123 => arr[0][0]、arr[0][1]、arr[0][2]
456 => arr[1][0]、arr[1][1]、arr[1][2]
789 => arr[2][0]、arr[2][1]、arr[2][2]
Wenn Sie dies tun können, können Sie mit diesem Array verschiedene Dinge tun.
#include <stdio.h>
#include <string.h>
#define MAX_ROW 1000
#define MAX_COL 1000
static int g_map[MAX_ROW][MAX_COL];
int main(int argc, char** argv){
int count1, count2, len;
char input_string[MAX_ROW];
/*Erster Standardeingang*/
scanf("%s", input_string);
len = strlen(input_string);
for(count1 = 0; count1 < len; count1++){
/*Führen Sie ab dem zweiten Mal hier eine Standardeingabe durch*/
if(count1 > 0){
scanf("%s", input_string);
}
for(count2 = 0; count2 < len; count2++){
/*Aus ASCII-Buchstaben"0"(0x30)Sie können den Wert durch Subtrahieren erhalten.*/
g_map[count1][count2] = input_string[count2] - '0';
}
}
/*Anzeige*/
for(count1 = 0; count1 < len; count1++){
for(count2 = 0; count2 < len; count2++){
printf("%d", g_map[count1][count2]);
}
printf("\n");
}
return 0;
}
Bei Verwendung eines dynamischen Arrays Ist das vielseitiger?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define INPUT_STRING_LEN 1000
int **g_map;
int main(int argc, char** argv){
int count1, count2, len;
char input_string[INPUT_STRING_LEN];
/*Erster Standardeingang*/
scanf("%s", input_string);
len = strlen(input_string);
/*Dynamische Array-Zuordnung*/
g_map = malloc(sizeof(int *) * len);
for (int i = 0; i < len; i++) {
g_map[i] = malloc(sizeof(int) * len);
}
for(count1 = 0; count1 < len; count1++){
/*Führen Sie ab dem zweiten Mal hier eine Standardeingabe durch*/
if(count1 > 0){
scanf("%s", input_string);
}
for(count2 = 0; count2 < len; count2++){
/*Aus ASCII-Buchstaben"0"(0x30)Sie können den Wert durch Subtrahieren erhalten.*/
g_map[count1][count2] = input_string[count2] - '0';
}
}
/*Anzeige*/
for(count1 = 0; count1 < len; count1++){
for(count2 = 0; count2 < len; count2++){
printf("%d", g_map[count1][count2]);
}
printf("\n");
}
/*Öffnungsprozess*/
for (int i = 0; i < len; i++) {
free(g_map[i]);
}
free(g_map);
return 0;
}
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(int argc, char** argv){
string input_string;
const char* c_string;
int length, count1, count2;
vector< vector<int> > arr;
cin >> input_string;
length = input_string.size();
/*Dynamische Größenänderung mithilfe der Größenänderungsfunktion*/
arr.resize(length);
for(count1 = 0; count1 < length; count1++){
arr[count1].resize(length);
}
for(count1 = 0; count1 < length; count1++){
if(count1 > 0){
cin >> input_string;
}
for(count2 = 0; count2 < length; count2++){
c_string = input_string.c_str();
arr[count1][count2] = c_string[count2] - '0';
}
}
for(count1 = 0; count1 < length; count1++){
for(count2 = 0; count2 < length; count2++){
cout << arr[count1][count2];
}
cout << endl;
}
//Dies ist nicht erforderlich, da der Löschvorgang im Destruktor ausgeführt wird.
return 0;
}
if __name__=="__main__":
input_string = input()
length = len(input_string)
map_data = [[0 for i in range(length)] for j in range(length)]
for count1 in range(0, length):
if count1 > 0:
input_string = input()
for count2 in range(0, length):
map_data[count1][count2] = int(input_string[count2])
#Anzeige
for count1 in range(0, length):
for count2 in range(0, length):
print(map_data[count1][count2], end='')
print("")
(defun main ()
(let (count1
count2
input-string
str-length
map-data)
(setf input-string (read-line))
(setf str-length (length input-string))
(setf map-data (make-array `(,str-length ,str-length)))
(dotimes (count1 str-length)
(setf count2 0)
(if (> count1 0)
(setf input-string (read-line)))
(loop :for char :across input-string
:do (setf (aref map-data count1 count2) (digit-char-p char))
(incf count2)))
;;Anzeige
(dotimes (count1 str-length)
(dotimes (count2 str-length)
(format t "~d" (aref map-data count1 count2)))
(format t "~%"))))
import java.util.*;
class Main{
/*Ständige Erklärung*/
public static final int MAX_ROW = 1000;
public static final int MAX_COL = 1000;
/*Hauptfunktion*/
public static void main(String[]args){
int question[][] = new int[MAX_ROW][MAX_COL];
int count1, count2, len;
String input_string;
Scanner cin = new Scanner(System.in);
input_string = cin.nextLine();
len = input_string.length();
for(count1 = 0; count1 < len; count1++){
if(count1 > 0){
input_string = cin.nextLine();
}
for(count2 = 0; count2 < len; count2++){
question[count1][count2] = input_string.charAt(count2) - '0';
}
}
/*Anzeige*/
for(count1 = 0; count1 < len; count1++){
for(count2 = 0; count2 < len; count2++){
System.out.print(question[count1][count2]);
}
System.out.println("");
}
}
}
using System.IO;
using System;
class Program
{
/*Konstante Definition*/
public const int MAX_ROW = 1000;
public const int MAX_COL = 1000;
/*Hauptfunktion*/
static void Main()
{
int[,] question = new int[MAX_ROW, MAX_COL];
int count1, count2, len;
String input_string;
input_string = Console.ReadLine();
len = input_string.Length;
for(count1 = 0; count1 < len; count1++){
if(count1 > 0){
input_string = Console.ReadLine();
}
for(count2 = 0; count2 < len; count2++){
question[count1, count2] = input_string[count2] - '0';
}
}
/*Anzeige*/
for(count1 = 0; count1 < len; count1++){
for(count2 = 0; count2 < len; count2++){
Console.Write(question[count1, count2]);
}
Console.WriteLine("");
}
}
}
if __FILE__ == $0
input_string = gets.chomp
length = input_string.length - 1
map_data = Array.new
(0..length).each do |count1|
if count1 > 0 then
input_string = gets.chomp
end
map_data << input_string.split("").map(&:to_i)
end
#Anzeige
(0..length).each do |count1|
(0..length).each do |count2|
print map_data[count1][count2]
end
puts ""
end
end
Ich habe ein Programm in 5 verschiedenen Sprachen geschrieben (C-Sprache, Python3, CommonLisp, Java, C #). (Ich denke, es gibt einen besseren Weg, es zu schreiben ...) Dies ist ein vorbereitendes Programm zum Vorbereiten der Daten vor dem Schreiben des Algorithmus. Eigentlich werden wir das Problem mit den Daten lösen, die von hier aus im Array gespeichert sind. Diesmal war es ein Array, aber es gibt verschiedene andere Datenstrukturen wie Listen, Warteschlangen, Stapel und Hashes. Es wäre also schön, wenn Sie eine entsprechend Ihrem Problem auswählen könnten.
Recommended Posts