質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

668閲覧

C#で、n回数、文字と半角スペースと数値を一緒の配列変数に加えた後、それぞれ文字・数値を一行として出力する方法を知りたい

Yon_yon

総合スコア1

標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/09/03 05:15

分からないままなので思い切って質問させていただきたいです。

・n回数、文字と半角スペースと数値を一緒の配列変数に加えた後、それぞれ文字・数値を一行として出力する方法を知りたいです。

例として入力を、
3
aiu 23
abc 2
irohani 10

出力を、
aiu 23
abc 2
irohani 10

このようにしたいです。

class Program
{
static void Main()
{
var n = int.Parse(Console.ReadLine()); //n回数

string line = Console.ReadLine();//文字半角スペース数値を一行 string[] stArray = line.Split(' ');//半角スペースで区切り配列へ int[] data = new int[stArray.Length];//int data[]の要素数指定 for (int i = 0; i < n; i++) { data[i] = int.Parse(stArray[i]); //×整数にしか対応していない Console.WriteLine(data[i]); } }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/09/03 05:20

入力と出力が変わっていないので、最初の一行を読み飛ばしてそのまま出せばいいと思います。
gentaro

2021/09/03 06:16

まぁたぶん質問文が間違ってるんだろうと思うけど…。
Yon_yon

2021/09/03 11:57

コメントありがとうございます。 gentaro仰るように、問いに対する考え違えをしているのかもしれないと思いました。 Zuishinさんの仰ることと合っているか分かりませんが、Splitなどなしでトライしてみようと思います。
gentaro

2021/09/03 12:41 編集

ん? 私もイマイチ質問文の日本語がわかりづらくて、やりたいことが理解できないけども、これって入力が -- 3 aiu 23 abc 2 irohani 10 -- の4行で、出力が -- aiu 23 abc 2 irohani 10 -- の3行だ、と質問文書いてあるのだから、シンプルに「入力の最初の一行目(3だけの行)を飛ばして、後は入力されたものをそのまま出力すれば良いのではないのか」というのがZuishinさんの指摘だと思うけど、どこが難しかったんでしょう? 私が「質問文が間違っている」と思ったのは、単に「(3の行以外の)入力されたものをそのまま出力したい」、という命題が変だと思ったから、質問文に何らかの説明漏れがあるか、期待する出力を間違えているのか、そもそもやりたいと意図している事がちゃんと伝わっていないのか、いずれかだろう、と思っただけです。
Yon_yon

2021/09/03 12:53

コメントありがとうございます! けしてZuishinさんを否定したわけでもありません、私の日本語が下手だったことが問題にあると思います。 教えていただいた結果、やりたかった入出力が得られました。 これから質問させていただくときは、今よりは正確な文を書きたいと思いました。gentaroさん、Zuishinさん、fanaさん、ありがとうございます!
退会済みユーザー

退会済みユーザー

2021/09/04 01:23 編集

https://teratail.com/help/question-tips ←これを読んでください。そこに書いてある、 "人に質問をするには、自分が何を尋ねたいかを知っている必要があります。これは、「自分が今『何がわからないのか』がわかっていて、言語化できている」ということです。" が不十分で、 何がわからないかわからない人から質問を受けても、答える側も困ってしまいます。" という状態ですよ。
guest

回答2

0

ベストアンサー

うーん,提示されているコードを見るに,
何をどういう順番でやっていけばよいのか? という考えが明確になっていないんじゃないかと.

とりあえず,入力例

3
aiu 23
abc 2
irohani 10

について考えてみれば,
n=3
なのでしょうから,
「文字列とスペースと数値が並んだ行」を読み込んで何やかんやする処理というのは3回行う必要がありそうですよね.

すなわち,

string line = Console.ReadLine();//文字半角スペース数値を一行
string[] stArray = line.Split(' ');//半角スペースで区切り配列へ

みたいな処理を,3回行う必要があるということでしょう.
つまり,こういう処理は

for (int i = 0; i < n; i++)

による繰り返しの中でやるべきなんじゃないでしょうかね.

投稿2021/09/03 06:17

fana

総合スコア11708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yon_yon

2021/09/03 12:02

fanaさんのご指摘を受け、入力をループ内にいれていないということが致命的だと思いました。 帰宅したら早速試してみようと思います。親切にありがとうございます。
guest

0

class Program
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
string[] line = new string[n];

for (int i = 0; i < n; i++) { line[i] = Console.ReadLine(); } for (int i = 0; i < n; i++) { Console.WriteLine(line[i]); } } }

投稿2021/09/03 12:46

Yon_yon

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問