今天又学到了一些新的知识点,用过微信的人都知道,每天晚上十点之后都会看到微信运动上的排行榜更新,其实我之前也没有用过这个,偶然一天才发现还有这种东西,每天看着微信里的好友成千上万的步数,再看看自己的真的叫做没有对比就没有伤害啊。那么关于这个微信步数的排行榜是如何实现的呢,今天就来用c#模拟一下吧,下面是主要涉及的一些代码,我主要模拟了是个用户的步数排行。如下所示:
using System;
namespace ConsoleApp5
{
class Program
{
//模拟十个用户微信运动步数排行榜,方法主要涉及了交换比较法
static void Main()
{
vxuser temp=new vxuser();//声明结构类型
vxuser ul=new vxuser();
vxuser u2 = new vxuser();
vxuser u3 = new vxuser();
vxuser u4 = new vxuser();
vxuser u5 = new vxuser();
vxuser u6 = new vxuser();
vxuser u7 = new vxuser();
vxuser u8 = new vxuser();
vxuser u9 = new vxuser();
vxuser u10 = new vxuser();
ul.strId = "柠枝"; ul.strName = "高"; ul.num = 8650;//给结构类型赋值
u2.strId = "晴天"; u2.strName = "李"; u2.num = 6200;
u3.strId = "向日葵"; u3.strName = "米"; u3.num = 3500;
u4.strId = "满天星"; u4.strName = "周"; u4.num = 21005;
u5.strId = "c#学会"; u5.strName = "王"; u5.num = 5623;
u6.strId = "高数过"; u6.strName = "唐"; u6.num = 210;
u7.strId = "c语言高分"; u7.strName = "刘"; u7.num = 1500;
u8.strId = "数据结构懂"; u8.strName = "洪"; u8.num = 9652;
u9.strId = "人机交互"; u9.strName = "郭"; u9.num = 6980;
u10.strId = "线性代数"; u10.strName = "夏"; u10.num = 120;
vxuser[] a = { ul, u2, u3, u4,u5, u6,u7,u8,u9,u10 };//设定一个数组
for (int i = 0; i < a.Length; i++)//利用for循环来将数组中的数进行比较,第一个位置的数
{
for(int j = i+1; j < a.Length; j++)
{
if(a[i].num < a[j].num)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;//交换值
}
}
}
foreach(vxuser s in a)//迭代循环
{
Console.WriteLine("名称{0},步数{1}",s.strName,s.num);
}
}
struct vxuser//结构体用户
{
public string strId;//用户ID
public string strName;//用户姓名
public int num;//用户微信步数
}
}
}
输出结果如下: