c#部分---一维数组、冒泡排序、foreach的用法
一维数组:2016-10-14
定义方式:{定义的时候,需要数据类型、长度!}
1.int []aa=new int [5]; 表示数组里面有5个字符;
2.int []aa=new int []{1,2,3,4,5};
3.int []aa=new int [5]{1,2,3,4,5}; 表示数组里面有5个字符,分别是1,2,3,4,5,
★ aa[0]=1;表示数组中第一个空位;aa[1]=2; aa[2]=3; aa[3]=4; aa[4]=5;
(数组的索引是从“0”位开始的!)
1.输入班级人数,统计每个人的姓名,并打印;
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
string []name=new string [n];
for (int i = 0; i < name.Length;i++ )
{
Console.Write("请输入第{0}位学生的姓名:",(i+1));
name[i]=Console.ReadLine();
}
Console.Write("所有学生的姓名已经打印,请按enter键进行人员打印。");
Console.ReadLine();
Console.Clear();
for (int j = 0; j < name.Length;j++ )
{
Console.Write("第{0}位学生的姓名是:{1}",(j+1),name[j]);
}
//最后的for循环还可以用foreach替代:
★★foreach(string a in name) {表示把name数组里面的每个字符赋值给a}
{
Console.Write(a);
}
2.输入班级人数,统计每个人的年龄,并排序(从大到小)
//输入班级人数,统计每个人的年龄,并排序打印(从大到小)
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
int []age=new int [n];
for (int i = 0; i < age.Length;i++ )
{
Console.Write("请输入第{0}位学生的年龄:",(i+1));
age[i]=int.Parse(Console.ReadLine());
}
foreach (int aa in age)
{
Console.WriteLine(aa);
}
Console.Write("年龄输入完毕,请按回车键进行排序打印");
Console.ReadLine();
//★ for(int j=0;j<n-1;j++) (冒泡排序)
{
for(int k=j+1;k<n;k++)
{
if(age[j]<age[k])
{
int zhong=age[j];
age[j]=age[k];
age[k]=zhong;
}
}
}
foreach(int aa in age)
{
Console.WriteLine(aa);
}
3个练习题;
//1.输入班级人数,输入每个人的分数,求班级最高分,最低分,平均分,
//去掉两个最高分并且去掉两个最低分之后的所有人员的平均分。
// Console.Write("请输入班级人数:");
// int n = int.Parse(Console.ReadLine());
// int []score=new int[n];
// for (int i = 0; i < n;i++ )
// {
// Console.Write("第{0}位同学的分数是:",(i+1));
// score[i] = int.Parse(Console.ReadLine());
// }
// Console.Write("学生分数输入完毕,请按回车键进行排序。");
// Console.ReadLine();
// for(int j=0;j<score.Length-1;j++)
// {
// for(int k=j+1;k<n;k++)
// {
// if(score[j]<score[k])
// {
// int zhong=score[j];
// score[j]=score[k];
// score[k] = zhong;
// }
// }
// }
// int sum = 0;
// foreach(int aa in score)
// {
// Console.Write(aa);
// sum = sum + aa;
// }
//double sum1=sum-score[0]-score[1]-score[n-2]-score[n-1];
// Console.Write("分数排序完毕,请按回车键继续。");
// Console.ReadLine();
// Console.Write("最高分是:{0}",score[0]+"\n");
// Console.Write("最低分是:{0}", score[(n - 1)]+"\n");
// Console.Write("平均分是:{0}", (sum / n)+"\n");
// Console.Write("最后平均分是:{0}",(sum1/(n-4)));
//2.随机生成一注彩票中奖号码。(6个红球(范围1~33),一个蓝球(1~16)),注意,不能重复。
//Random aa = new Random();
//int[] h = new int[33];
//for (int i = 0; i < 6;i++ )
//{
// h[i] = aa.Next(1,33);
// //用冒泡排序
// for (int j = 0; j < 5; j++)
// {
// for (int k = j + 1; k < 6; k++)
// {
// if (h[j] == h[k])
// {
// h[j] = aa.Next(1, 33);
// }
// }
// }
// Console.Write("第{0}个红球号码是:{1}", (i + 1), h[i]+"\n");
//}
//int l = aa.Next(1,16);
//Console.Write("篮球号码是:{0}",l);
//3.拓展题目
//输入班级人数,输入一个人名,输入一个分数。求班级最高分是多少,是谁的分数(注意姓名跟分数对应)
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
string []name=new string [n];
int []score=new int[n];
string []sz=new string [n];
for (int i = 0; i < n;i++ )
{
Console.Write("请输入第{0}个学生的名字:",(i+1));
name[i] = Console.ReadLine();
Console.Write("请输入第{0}个学生的分数:",(i+1));
score[i] = int.Parse(Console.ReadLine());
sz[i] = name[i] + score[i];
}
Console.WriteLine("姓名与分数已经输入完毕,请按回车键进行排序并打印。");
Console.ReadLine();
for(int j=0;j<n-1;j++)
{
for(int k=j+1;k<n;k++)
{
if(score[j]<score[k])
{
string zhong=sz[j];
sz[j]=sz[k];
sz[k]=zhong;
}
}
}
foreach (string p in sz)
{
Console.WriteLine(p);
}