C#题目:要定义一个数组存用户输入的数据,但是数组的长度是由用户输入数据的多少决定的,而且输入0表示结束。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Collections;
namespace work
{
class Program
{
static void Main(string[] args)
{
ArrayList str_Array = new ArrayList();
int num = 0;
//之所以用ReadKey()而不用ReadLine(),是因为我想:
//一旦输入字符0,马上结束输入并输出数组,而ReadLine只有在按下回车之后才可以输出数组
//区别在于这个方法比用ReadLine的可以少输入一个回车,
//同时也避免了 键入0后还可以继续输入字符 这种不合逻辑的情况的发生
while(true)
{
char char_temp = Console.ReadKey().KeyChar;
if(char_temp>='1'&&char_temp<='9')
{
num = num * 10 + char_temp - '0'; //检测到输入的是1-9的字符,则将其转化为对应的整数
}
else if (char_temp == '0')
{
break;
}
else if ( (char_temp == ' '||char_temp == ',') && num!=0)
//如果输入了空格或逗号,并且num不等于0,
//表示上一个数组元素已经输入结束了。
{
str_Array.Add(num);
num = 0;
}
}
Console.WriteLine();
for (int i = 0;i<str_Array.Count;i++)
{
Console.WriteLine("第{0}个元素的值为:{1}", i + 1, str_Array[i]);
}
Console.ReadKey();
}
}
}