学习笔记(一):数组
一、数组定义格式
一维数组:数据类型 [] 变量名称
二维数组:数据类型 [,] 变量名称
创建数组的格式:
例:一、 int [] arr; //声明一个数组,但并不存在
arr=new int[3];//中括号中为数组长度
arr[0]=10;
arr[1]=20;
arr[2]=30;
二、 int [] arr=new int[3]{10,20,30};
三、 int [] arr={10,20,30};
二、两道练习题
1.随即输入几个数,求其中最大连续数的和
int [] arr=new int [5]; //创建一个一维数组存放输入的数据
for(i=0;i<5;i++) //输入5个数
{
Console.WriteLine("请输入一个整数:");
arr[i]=int.Parse(Console.ReadLine());
}
int [] sec=new int[5]; //创建一个数组存放第一个数组中连续数的和
int sum=0;
int index=0; //第二个数组的下标
bool isSeries=false;
for(int i=0;i<arr.Length-1;i++) //此处 i<arr.Length-1 是为了防止数组越界
{
if(arr[i]+1==arr[i+1])
{
//两个数连续
sum+=arr[i];
isSeries=true;
}
else
{
if(isSeries)
{
sum+=arr[i];
sec[index++]=sum;
sum=0;
isSerise=false;
}
}
}
if(isSerise)//判断最后一个数是否连续,如果连续加上最后一个数
{
sec[index++]=sum+arr[arr.Length-1];
}
int max=0;
for(i=0;i<index;i++)
{
if(sec[i]>max)
{
max=sec[i];
}
}
Console.WriteLine(max);
2.找出某一字符串中出现次数最多的英文字母,返回这个字母及其个数
Console.WriteLine("请输入一串字符串:");
string str=Console.ReadLine();
object [,] obj = new obj[26,2]; //创建一个二维数组,存放字母和字母出现的次数
int index=0;
foreach(char c in str)
{
bool isExist=false;
for(int i=0;i<index;i++)
{
if( (char) obj[i,0] == c ) //如果有相同的字符
{
obj[i,1]=int.Parse(obj[i,1].ToString())+1;
isExist=true;
break;
}
}
if(!isExist) //没有相同字符
{
obj[index,0]=c;
obj[index++,1]=1;
}
}
char maxChar=' ';
int max=0;
for(int i=0,i<index;i++)
{
if( int.Parse(obj[i,1].ToString()) > max )
{
max=int.Parse(obj[i,1].ToString());
maxChar=(char) obj[i,0];
}
}
Console.WriteLine("输入的字符串为{0},重复最多的字符是{1},次数为{2}",str,maxChar,max);