c#程序 利用26个英文字母实现排序,可以重复例如10个a,排序长度要求10位。求详细源代码

c#程序 利用26个英文字母实现排序,可以重复例如10个a,排序长度要求10位。求详细源代码,第1张

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemThreadingTasks;

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            //英文字母的字典

            string[] str = { "aA", "bB", "cV", "dD", "eE", "fF", "gG", "hH", "iI", "jJ", "kK", "lL", "mM", "nN", "oO", "pP", "qQ", "rR", "sS", "tT", "uU", "vV", "wW", "xX", "yY", "zZ" };

            //请用户输入

            ConsoleWriteLine("请输入要排序的字母");

            string item = ConsoleReadLine();

            //最终的排序使用

            string[] s = new string[strLength];

            //循环用户输入的数据

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

            {

                //循环字典

                for (int j = 0; j < strLength; j++)

                {

                    //匹配当前循环到的数据在字典中的索引 因为字典是大小写一起出现的所以要匹配两个

                    if (item[i] == str[j][0] || item[i] == str[j][1])

                    {

                        //根据匹配到的索引放到准备好的数组中

                        s[j] += item[i]ToString();

                    }

                }

            }

            //循环输出计算好的结果

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

            {

                //如果不等于null则输出

                if (s[i] != null)

                {

                    ConsoleWrite(s[i]);

                };

            }

            ConsoleReadKey();

        }

    }

}

方法有些笨  请采纳

你说的近百个文档是指近百个工作表吧,想将近百个工作表进行排序,利用VAB就可以轻松搞定了,我帮你编了个VAB程序,你按如下方法执行就OK了,为防止数据丢失,建议你先将原文件进行备份。

1、打开该表格,在任意一个工作表标签上单击右键,点“查看代码

2、在代码窗口中,单击菜单命令“插入”-“模块”,然后将下面的代码复制到模块窗口中(代码已经加入详细的注解,有基础的人应该一看就明白了):

Sub

工作表按字母排序()

Dim

ii

As

Long

Dim

总表数

As

Long

Dim

工作表名

As

String

总表数

=

SheetsCount

'在所有工作表之后插入一个新的工作表,用于处理工作表名称

SheetsAdd

after:=Sheets(总表数)

'将所有工作表的名称都读取到新工作表的A列

For

ii

=

1

To

总表数

Sheets(总表数

+

1)Cells(ii,

1)

=

Sheets(ii)Name

Next

ii

'接下来要将新表的A列按字母顺序排列

Sheets(总表数

+

1)Columns(1)Sort

Key1:=Sheets(总表数

+

1)Range("A1"),

Order1:=xlAscending,

Header:=xlGuess,

_

OrderCustom:=1,

MatchCase:=False,

Orientation:=xlTopToBottom,

SortMethod

_

:=xlPinYin,

DataOption1:=xlSortNormal

'将所有工作表的位置按照A列的名称重新调整

For

ii

=

1

To

总表数

工作表名

=

Sheets(总表数

+

1)Cells(ii,

1)

Sheets(工作表名)Move

before:=Sheets(ii)

Next

ii

'排序完毕,将新增的辅助表删除

Sheets(总表数

+

1)Delete

End

Sub

3、将光标定位到代码的任一处,然后按下F5执行代码,代码执行完毕后,会d出删除工作表的提示,不用担心,这个工作表是代码执行的时候临时新建的,排序完成后则需要将其删除,所以请放心单击“删除”按钮。这时关闭代码窗口,看看工作表是否已经排序好了。

4、排序完成后,刚才的代码就好象没用了,如果不需要了,可以在代码窗口中将新增的模块移除就行了。

#include <stdioh>

#define MAX 100

void sort(char str[])

{

char t;

int i,j,n;

n=strlen(str);

for(i=0;i<n-1;++i)

{

for(j=0;j<n-1-i;++j)

{

if(str[j]<str[j+1])

{

t=str[j];

str[j]=str[j+1];

str[j+1]=t;

}

}

}

}

int main(void)

{

char str[MAX];

gets(str);

sort(str);

puts(str);

return 0;

}

static void Main(string[] args)

{

const int size = 50;

ConsoleWriteLine("How many strings will be sort\nPlease input the num:");

int num = ConvertToUInt16(ConsoleReadLine());

string[] strarray = new string[size];//定义字符串数组

sort(strarray, num);

ConsoleReadKey();

}

static void sort(string[] str, int num)

{

ConsoleWriteLine("Please input the string:\n");//输入数据

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

{

ConsoleWriteLine("Input the No{0}", i + 1);

str[i] = ConsoleReadLine();

}

ConsoleWriteLine(" ______________________________________\n");//分割线

for (int j = 0; j < num; j++) //排序过程

for (int i = 0; i < num - j - 1; i++)

{

if (stringCompareOrdinal(str[i], str[i + 1]) > 0)

{

string temp = str[i];

str[i] = str[i + 1];

str[i + 1] = temp;

}

}

ConsoleWriteLine("After the Sort:");//输入排序之后的字符串

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

{

ConsoleWriteLine("{0}\n", str[i]);

}

}

#include <stdioh>

#include <stdlibh>

//申明链表

typedef struct node

{

char num;

struct node next;

}list;

void Bubble_sort(list L);//链表的冒泡排序

void Dis_list(list L);//遍历单链表

int main()

{

//建表

list r,s,p;

int n=26;//存储数据的个数

s=NULL;

for(int i='Z';i>='A';i--)

{

r=(list )malloc(sizeof(list));

r->num = i;

if(!s){s=r;p=s;}

p->next=r;

p=r;

}

p->next=NULL;

printf("排序前:\t");

Dis_list(s);

//排序

Bubble_sort(s);

printf("排序后:\t");

Dis_list(s);

return 0;

}

void Dis_list(list L)

{

list r;

r=L;

while(r!=NULL)

{

printf("%c\t",r->num);

r=r->next;

}

printf("\n");

}

void Bubble_sort(list L)

{

list r,s;

char temp;

for(r=L;r;r=r->next)

{

for(s=r;s;s=s->next)

{

if(r->num>s->num)

{

temp=r->num;

r->num=s->num;

s->num=temp;

}

}

}

}

以上就是关于c#程序 利用26个英文字母实现排序,可以重复例如10个a,排序长度要求10位。求详细源代码全部的内容,包括:c#程序 利用26个英文字母实现排序,可以重复例如10个a,排序长度要求10位。求详细源代码、EXCEL有近百个文档,怎么才能按照字母排序、c语言的程序设计 编程将一个字符数组中的字母,按由大到小的顺序进行排序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10122976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存